力扣链接:367.有效的完全平方数
难度:⭐
解题关键词:二分查找
解题思路:使用二分查找。判断 mid 元素平方是否等于目标元素,并且根据乘积动态调整左右指针。
typescript
function isPerfectSquare(num: number): boolean {
let left = 1;
let right = num;
while (left <= right) {
const mid = Math.floor((right - left) / 2) + left;
const res = mid * mid;
if (res === num) return true;
if (res > num) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return false;
}