方法1:二分查找
时间复杂度:$O(logN)$
空间复杂度:$O(1)$
解题思路
Java 代码
class Solution {
public boolean isPerfectSquare(int num) {
int l = 0, r = num;
while (l <= r) {
int mid = ((r - l) >> 1) + l;
if ((long)mid * mid == num) {
return true;
} else if ((long)mid * mid < num) {
l = mid + 1;
} else {
r = mid - 1;
}
}
return false;
}
}