Leetcode69. x 的平方根(二分)

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode69. x 的平方根(二分)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/sqrtx/

解题思路

下边界为0,上边界为x,直接二分查找右边界,也就是满足 y 2 ≤ x y^2 \\leq x y2x,y的最大值

代码

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

复杂度分析

  • 时间复杂度:O(logn)
  • 空间复杂度:O(1)

以上是关于Leetcode69. x 的平方根(二分)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 69 x的平方根[二分法] HERODING的LeetCode之路

LeetCode69. x 的平方根

LeetCode69. x 的平方根

69.x的平方根 ---二分查找

⭐算法入门⭐《二分枚举》简单07 —— LeetCode 69. x 的平方根

[LeetCode] 69. x 的平方根