力扣69. x 的平方根


class Solution {
    public int mySqrt(int x) {
        //二分查找实现
        if(x == 0) return 0;
        if(x == 1) return 1;
        int low = 1;
        int high = x;
        while(low <= high){
            int mid = (low + high)/2;
            int res = x/mid;
            if(res == mid) return res;
            if(res < mid){
                high = mid-1;//必须要减1
            }else{
                low = mid+1;//必须要加1
            }
        } 
        //当不满足 low <= high 退出时,high 总是比low小1,因此返回high
        return high;
    }
}

 

posted @ 2020-04-26 23:12  pengxiaowei  阅读(104)  评论(0)    收藏  举报