「每日LeetCode」2021年11月4日

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

Lt367. 有效的完全平方数

367. 有效的完全平方数

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

示例 1:
输入:num = 16 输出:true
示例 2:
输入:num = 14 输出:false

提示:

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

思路

二分法查找对应的数,没找到返回 false

解答

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