Leetcode_69_Sqrt(x)

Posted 皮斯特劳沃

tags:

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

Implement int sqrt(int x).

Compute and return the square root of x.

x is guaranteed to be a non-negative integer.

Example 1:

Input: 4
Output: 2
Example 2:

Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842…, and since we want to return an integer, the decimal part will be truncated.

思路:
(1)该题给你一个正整数,要求返回其平方根对于最大整数。
(2)首先考虑到使用java api中的Math类,哈哈,一行代码搞定,但是Math类的sqrt方法调用了本地方法,无法看见源码。另一种方法是使用类似二分查找的方法,对于正整数n,从判断n/2 * n/2 的值是否大于n,如果大于n,则从1到n/2范围内查找;否则从n/2到n里面查找,实现比较简单,这里就不给出了。
(3)代码实现如下所示。希望对你有所帮助。(其中java源码math类的sqrt方法的底层实现如下所示)

class Solution 
    public int mySqrt(int x) 
        return (int)Math.sqrt(x);
    
package leetcode;

public class Sqrt 

    public static void main(String[] args) 
        System.err.print((int) (sqroot(8)));
    

    static float sqroot(float m) 
        float i = 0;
        float x1 = 0.f;
        float x2 = 0.f;
        while ((i * i) <= m)
            i += 0.1;
        x1 = i;
        for (int j = 0; j < 10; j++) 
            x2 = m;
            x2 /= x1;
            x2 += x1;
            x2 /= 2;
            x1 = x2;
        
        return x2;
    


以上是关于Leetcode_69_Sqrt(x)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 69 _ Sqrt(x) 求平方根 (Easy)

[LeetCode] 69. Sqrt(x)_Easy tag: Binary Search

leetcode二分 | 牛顿迭代法69_Sqrt(x)

LeetCode(69):Sqrt(x)

Leetcode 69. Sqrt(x)

LeetCode 69. Sqrt(x)