【leetcode 367】valid perfect square 有效的完全平方数

“The Linux philosophy is “Laugh in the face of danger”.Oops.Wrong One. “Do it yourself”. Yes, that”s it.”
Linux的哲学就是“在危险面前放声大笑”,呵呵,不是这句,应该是“一切靠自己,自力更生”才对。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

* 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
* 说明:不要使用任何内置的库函数,如 sqrt。
*
* 二分查找
* 一个数的平方根一定小于这个数的一半
*/
public class {
public static boolean isPerfectSquare (int num) {
if (num < 1)
return false;
if (num == 1)
return true;
long left = 0;
long right = num / 2;
while (left <= right) {
long mid = (left + right) / 2;
if (mid * mid == num)
return true;
else if (mid * mid < num)
left = mid + 1;
else
right = mid - 1;
}
return false;
}
}