69. Sqrt(x)

以平常心对股市沉浮, 不悔不怕
打印 被阅读次数

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;
    }

登录后才可评论.