大浪淘沙

以平常心对股市沉浮, 不悔不怕
正文

69. Sqrt(x)

(2019-12-05 01:00:03) 下一个

69Sqrt(x)

Knowledge point:

1. binary search: low , high mid

   while(low<=high) mid=(high-low)/2+low

 2  Math calculation : 

         long mid

3 sqrt:   mid*mid<high

  public int mySqrt(int x) {
        if(x<=0) return 0;
        int low=1;
        int high=x;
        while(low<=high){
            long mid=(high-low)/2+low;
            if(mid*mid==x)
                return (int)mid;
            else if(mid*mid<x)
                low=(int)mid+1;
            else high=(int)mid-1;
            
                
        }
        if(high*high<x)
            return high;
        else
             return low;
    }

[ 打印 ]
阅读 ()评论 (0)
评论
目前还没有任何评论
登录后才可评论.