给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16 输出:true 示例 2:
输入:num = 14 输出:false
提示:
1 <= num <= 2^31 - 1
var isPerfectSquare = function(num) {
if (num === 1) return true
let left = 0
let right = num >> 1
while(left <= right) {
const mid = left + ((right - left) >> 1)
if (mid ** 2 === num) {
return true
}
if (mid ** 2 < num) {
left = mid + 1
}
if (mid ** 2 > num) {
right = mid - 1
}
}
return false
};
解题思路: 二分法