224 字
1 分钟
Leetcode->有效的完全平方数
题目
给定一个 正整数 num
,编写一个函数,如果 num
是一个完全平方数,则返回 true
,否则返回 false
。
进阶:不要 使用任何内置的库函数,如 sqrt
。
示例 1:
输入:num = 16
输出:true
示例 2:
输入:num = 14
输出:false
提示:
1 <= num <= 2^31 - 1
解题:key:
①暴力循环
/**
* @param {number} num
* @return {boolean}
*/
var isPerfectSquare = function(num) {
let square = 1,x = 1
while(square <= num){
if(square == num){
return true
}
++x
square = x * x
}
return false
};
②二分查找
TIP 这里有一点需要注意,当left == right的时候,还要做一次判断的
/**
* @param {number} num
* @return {boolean}
*/
var isPerfectSquare = function(num) {
let left = 0,right = num
while(left <= right) {
let mid = Math.floor((right - left) / 2 + left)
let square = mid * mid
if(square < num){
left = mid + 1
}else if (square > num){
right = mid - 1
}else{
return true
}
}
return false
};
Leetcode->有效的完全平方数
https://blog.oceanh.top/posts/algorithm/有效的完全平方数/