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)