有效的完全平方数
一、题目
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
示例 1:
输入:16
输出:True
示例 2:
输入:14
输出:False
题解
这道题是典型的模版I分析思路
- 在有序的“数组”中,查找指定的元素
- 每次排除一般的查找空间
/**
* @param {number} num
* @return {boolean}
*/
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);
const pro = mid * mid;
if (pro === num) return true;
if (pro > num) right = mid - 1;
if (pro < num) left = mid + 1;
}
return false;
};
三、写在最后
本文是附加题,可能仅仅借助了二分思想中的一部分,加油!
如果对你有所帮助不妨给本项目的github 点个 star,这是对我最大的鼓励
关于我
- 花名:余光
- WX:j565017805
- 沉迷 JS,水平有限,虚心学习中
其他沉淀