笨方法就是类似于二分法的试,时间复杂度肯定很高。
所以,从数学的角度,可能有解决方法:
平方数一定是一系列奇数1,3,5,7...的加和,原因么,参考https://www.cnblogs.com/grandyang/p/5619296.html
class Solution {
public:
bool isPerfectSquare(int num) {
if(num == 0) return true;
int tmp = 1;
while(num > 0){
num -= tmp;
tmp += 2;
}
return num == 0;
}
};