题目:
题解:
就是一个非常普通的二分查找,但是需要注意的是查找的上下界,因为是完全平方,所以可以把上界设为这个数的一半,但是要特殊处理num等于1的时候。
bool isPerfectSquare(int num) {if(num==1)return true;long l=1,r=num/2,mid;while(l<=r){mid=(l+r)>>1;if(mid*mid==num)return true;else if(mid*mid<num)l=mid+1;else r=mid-1;}return false;}