leetcode+ sqrt(x)二分,因为答案就是在1- n/2+1.有序在上面二分即可

点击打开链接
class Solution {
public:
    int mySqrt(int x) {
        long long i=0,  j = x/2 +1;
        while(i<=j){
            long long mid = (i+j)/ 2;
            long long sq = mid * mid;
            if(sq==x) return mid;
            else if(sq<x) i = mid+1;
            else j = mid-1;
        }
        return j; //因为最终 i>j
    }
};

猜你喜欢

转载自blog.csdn.net/u013554860/article/details/80889389