leetcode 69 Sqrt(x) ---java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 69 Sqrt(x) ---java相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 69. Sqrt(x)

#Leetcode# 69. Sqrt(x)

[LeetCode] 69. Sqrt(x)

69. Sqrt(x)(LeetCode)

LeetCode 69 Sqrt(x)

LeetCode 69. Sqrt(x)