其他分享
首页 > 其他分享> > 69. x的平方根

69. x的平方根

作者:互联网

二分查找

class Solution {
    public int mySqrt(int x) {

        int left = 0;
        int right = x;

        while (left <= right){

            int mid = left + (right - left) / 2;

            /**
             * 避免整形溢出,转换为long
             */
            if ((long) mid * mid < x){
                left = mid + 1;
            }
            else if ((long) mid * mid > x){
                right = mid - 1;
            }
            else {
                return mid;
            }
        }

        /**
         * 如果目标不存在,返回小于目标的前一个元素
         */
        return right;
    }
}

/**
 * 时间复杂度 O(logn)
 * 空间复杂度 O(1)
 */

https://leetcode-cn.com/problems/sqrtx/

标签:right,return,int,复杂度,mid,69,平方根,left
来源: https://www.cnblogs.com/taoyuann/p/15902374.html