算法复习:二分查找

leedcode 69. x 的平方根

注意边界条件和判断条件

mid int存不下要用long long

long long mid=lower+(upper-lower)/2     取上界
long long mid=lower+(upper-lower+1)/2 取下界
class Solution {
public:

    int mySqrt(int x)
    {
        int lower=1,upper=x;
        long long mid=lower+(upper-lower)/2;
        if(x==0)
            return 0;
        while(lower<mid)
        {
            if(mid*mid==x)
                return mid;
            if(mid*mid>x)
            {
                upper=mid;
                mid=lower+(upper-lower)/2;
                continue;
            }
            if(mid*mid<x)
            {
                lower=mid;
                mid=lower+(upper-lower)/2;
                continue;
            }
        }
        return mid;
    }
};
leedcode 69

猜你喜欢

转载自www.cnblogs.com/dzzy/p/12275653.html