1、方法一,循环法
class Solution {
public boolean isPerfectSquare(int num) {
if(num == 1) return true;
for(int i = 0;i<=num/2+1;i++){
if (i*i == num) {
return true;
}
}
return false;
}
}
2、方法二:二分法
class Solution {
public boolean isPerfectSquare(int num) {
long left = 1;
long right = num/2 + 1;
while (left <= right) {
long mid = left + (right - left) /2 ;
if (mid*mid == num) {
return true;
}
if (mid*mid > num){
right = mid -1;
}else {
left = mid +1;
}
}
return false;
}
}