方法一:
思路:
二分查找:low high mid均定义为long类型,否则会溢出。
public class Solution {
public boolean isPerfectSquare(int num) {
long low = 1;
long high = num;
while (low <= high) {
long mid = low + (high - low) / 2;
if (mid * mid == num)
return true;
else if (mid * mid < num)
low = mid + 1;
else
high = mid - 1;
}
return false;
}
}
Runtime:0ms
方法二:
思路:
public class Solution {
public boolean isPerfectSquare(int num) {
for (int i = 1; i <= num / i; i++) {
if (i * i == num)
return true;
}
return false;
}
}
Runtime:3ms