Implement int sqrt(int x).

Compute and return the square root of x.

求一个数的平方根。

其实就是一个二分查找。

有两种查找方式

1、就是找到最大int值,然后从0到max,二分查找。

2、直接针对x,从0到x,二分查找。

public class Solution {
    public int mySqrt(int x) {
        int max = 46340;
        int flag = max/2;
        if( x >= max*max )
            return max;
        int start = 0,end = max;
        while(true){
            if( x >= flag*flag ){
                if( x < (flag+1)*(flag+1) )
                    return flag;
                else{
                    start = flag;
                    
                }
            }else{
                if( x >= (flag-1)*(flag-1))
                    return flag-1;
                else{
                    end = flag;
                }
            }
            flag = start+(end-start)/2;
        }
    }
}