llllmz

导航

69. x 的平方根

这题也是利用二分查找来计算。

首先区间是[0,x]。通过x/2的平方判断应该区间左移还是区间右移,同时值得注意的是要记录mid的平方小于x的mid值,因为比如8的平方根是2,所以平方小于x的mid要记录。

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

 

posted on 2024-09-05 21:47  神奇的萝卜丝  阅读(25)  评论(0)    收藏  举报