05 August 2008
给定一个正整数 num,编写一个函数,如果 num 是完全平方则返回 True,否则返回 False。
Follow up:不要使用任何内置的库函数,例如 sqrt。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public boolean isPerfectSquare(int num) {
long left = 1, right = num;
while (right - left > 1) {
long mid = (right - left) / 2 + left;
if (mid * mid <= num) {
left = mid;
} else {
right = mid;
}
}
return num == left * left;
}
}