367. 有效的完全平方数

题目

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false

示例1:

1
2
3
输入: 16

输出: True

示例2:

1
2
3
输入: 14

输出: False

提示:

  • 1 <= num <= 2^31 - 1

进阶:

不要使用任何内置的库函数,如 sqrt

解法

解法一:

牛顿迭代法

Java

1
2
3
4
5
6
7
8
9
class Solution {
public boolean isPerfectSquare(int num) {
long r = num;
while (r * r > num) {
r = (r + num / r) / 2;
}
return num == r * r;
}
}
0%