每次思考都是一次进步
1、可以用二分做,设l为0,r为num,不断求中间值,如果中间值平方为num,则返回true,否则则继续二分,一直到l>=r时跳出循环,然后判断一下此时的l(也是r)的平方是否为num,是则返回true,不是则返回false
class Solution {
public:
bool isPerfectSquare(int num) {
long long l=0,r=num;
while(l<r)
{
long long mid=l+(r-l)/2;
if(mid*mid==num) return true;
else if(num<mid*mid) r=mid;
else l=mid+1;
}
if(l*l==num) return true;
else return false;
}
};