侧边栏壁纸
  • 累计撰写 49 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

求平方根

Administrator
2025-04-22 / 0 评论 / 0 点赞 / 1 阅读 / 1413 字
温馨提示:
本文最后更新于 2025-04-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

求平方根

class Solution {
    public int mySqrt(int x) {
        int l = 0, r = x, ans = -1;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if ((long) mid * mid <= x) {
                ans = mid;
                l = mid + 1;
            } else {
                r = mid - 1;
            }
        }
        return ans;
    }
}

总结

  • lr分别代表搜索范围的左边界和右边界。
  • mid是l和r的中间值。
  • 如果mid * mid <= x,说明mid可能是平方根,或者平方根比mid大,所以更新ans = mid,并将左边界l移动到mid + 1,继续在右半部分搜索。
  • 如果mid * mid > x,说明平方根比mid小,所以将右边界r移动到mid - 1,继续在左半部分搜索。
  • 当l > r时,搜索范围为空,循环终止,此时ans 存储的是最接近x的整数平方根。
0

评论区