每日一题 367. 有效的完全平方数
367. 有效的完全平方数
低效率法
class Solution {
public:
bool isPerfectSquare(int num) {
if(num == 1)
{
return true;
}
long num1 = num;
for(int i=1;i<= num/2;++i)
{
if((long)(i)*i == num)
{
return true;
}
}
return false;
}
};
二分法
class Solution {
public:
bool isPerfectSquare(int num) {
int l = 1;
int r = num;
while(l <= r)
{
long mid = l + (r-l)/2;
long midQ = mid * mid;
if(midQ == num)
{
return true;
}else{
if(midQ > num)
{
r = mid -1;
}else{
l = mid + 1;
}
}
}
return false;
}
};