有效完美平方
题目 有效完美平方
思路分析
一定要找到一个确定的数
而不是大于某数的第一个或小于某数的最后一个
所以可以把模版稍微改一下
只有==时结束 否则往左或往右
不过要注意的是 此时循环条件成了l≤r
代码实现
class Solution {
public:
bool isPerfectSquare(int num) {
long long l=0,r=num;
while(l<=r)
{
long long mid=l+r>>1;
if(mid*mid==num)
return true;
else if(mid*mid<num)
l=mid+1;
else
r=mid-1;
}
return false;
}
};
💬 评论