GuilinDev

Lc0367

05 August 2008

367. Valid Perfect Square

给定一个正整数 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;
    }
}