给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
示例 1:
输入:16
输出:True
示例 2:
输入:14
输出:False
方法:二分查找
class Solution {
public boolean isPerfectSquare(int num) {
int L = 1, R = num;
while(L <= R){
int mid = (L + R) / 2;
// long mul = mid * mid; //错误
if((long)mid * mid < num){
L = mid + 1;
}
else if((long)mid * mid > num){
R = mid - 1;
}
else return true;
}
return false;
}
}