首页 > 编程语言 > 详细

leetcode 69 Sqrt(x) ---java

时间:2016-10-13 02:17:50      阅读:132      评论:0      收藏:0      [点我收藏+]

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

 

leetcode 69 Sqrt(x) ---java

原文:http://www.cnblogs.com/xiaoba1203/p/5954602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!