题目
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
思路
二分查找
代码
class Solution {
public boolean isPerfectSquare(int num) {
if(num==1)return true;
int l =0,r=num/2;
while(l<=r){
int mid = l+((r-l)>>1);
long sum =(long)mid*mid;
if(sum>num){
r=mid-1;
}else if(sum<num){
l=mid+1;
}else{
return true;
}
}
return false;
}
}