有效的完全平方数

题解方法

  • 二分查找

二分查找

  • 若正整数 x 满足$x \times x = num$,则 x 一定满足$1 \le x \le num$
  • 除 1 外的num,一定满足$ x \le num / 2$

核心代码

二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public boolean isPerfectSquare(int num) {
if (num == 1) {
return true;
}

long l = 0;
long r = num / 2;

while (l < r) {
long mid = l + r + 1 >> 1;
if (mid * mid <= num) {
l = mid;
}
else {
r = mid - 1;
}
}
return l * l == num;
}

题目来源

367. 有效的完全平方数 - 力扣(LeetCode) (leetcode-cn.com)