function mySqrt(x: number): number {
// if (x === 0) return 0
// if(x === 1) return 1
// for (let i: number = 1; i <= x / 2; i++) {
// if (i * i <= x && x < (i + 1) * (i + 1)) {
// return i
// }
// }
let left:number = 0
let right:number = x
while (left <= right) {
let mid:number = left + ((right - left) >> 1)//中间位置索引 x>>1 表示除以2并取整,缩小一下遍历的范围
if (mid * mid <= x) {
left = mid + 1
} else {
right = mid - 1
}
}
return right
};
// 示例 1:
// 输入:x = 4
// 输出:2
// 示例 2:
// 输入:x = 8
// 输出:2
// 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
leetCode - 算术平方根
最新推荐文章于 2024-06-01 11:26:46 发布
本文介绍了一种使用二分查找算法来高效计算一个数平方根的整数部分的方法。通过不断缩小搜索范围,该算法能够在较短时间内找到满足条件的整数解。

841

被折叠的 条评论
为什么被折叠?



