有效的完全平方数
题目链接
有效的完全平方数
题目描述
注意点
- 1 <= num <= 2^31 - 1
解答思路
- 二分查找的思想,初始l = 1,r = num,对中间点mid求平方后判断其与num的关系。如果相等,则num是有效的完全平方数,返回true;如果小于num,则将l移至mid右侧;如果大于num,则将r移至mid左侧
代码
class Solution {
public boolean isPerfectSquare(int num) {
int l = 1;
int r = num;
while (l <= r) {
int mid = l + ((r - l) >> 1);
long square = (long) mid * mid;
if (square == num) {
return true;
}
if (square > num) {
r = mid - 1;
} else {
l = mid + 1;
}
}
return false;
}
}
关键点
- 二分查找的思想
- 注意整型越界问题