码迷,mamicode.com
首页 > 编程语言 > 详细

leetcode 69 Sqrt(x) ---java

时间:2016-10-13 02:18:08      阅读:240      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!