「每日LeetCode」2021年8月30日

本文最后更新于:2023年3月19日 晚上

Lt367. 有效的完全平方数

367. 有效的完全平方数

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false
进阶:不要 使用任何内置的库函数,如   sqrt
示例 1:

1
2
输入:num = 16
输出:true

示例 2:

1
2
输入:num = 14
输出:false

提示:

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

思路

二分法查到平方等于 num 的值即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param {number} num
* @return {boolean}
*/
var isPerfectSquare = function (num) {
if (num === 1) return true;
let left = 0,
right = num;
while (left < right) {
const mid = parseInt((left + right) / 2);
const res = mid ** 2;
if (res === num) return true;
else if (res > num) right = mid;
else left = mid + 1;
}
return false;
};