/*
* @lc app=leetcode.cn id=367 lang=typescript
*
* [367] 有效的完全平方数
*/
//二分法
// @lc code=start
function isPerfectSquare(num: number): boolean {
if (num === 0 || num === 1) {
return true;
}
let left = 0,
right = num;
while (left <= right) {
let mid = Math.floor((right + left) / 2);
//let mid = left + ((right - left) >> 1);
if (num / mid === mid) {
return true;
} else if (mid > num / mid) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return false;
}
// @lc code=end