【LeetCode】Sqrt(x)
来源:互联网 发布:淘宝男装销量店铺排行 编辑:程序博客网 时间:2024/06/06 08:59
Sqrt(x)
Total Accepted: 11664 Total Submissions: 54437 My Submissions
Implement int sqrt(int x).
Compute and return the square root of x.
解法1:
调用Java API,Math.sqrt()。这个方法的底层实现是native。
1)、搜索0到x/2+1即可。
2)、两数相乘有可能越界,声明值为long型。
Total Accepted: 11664 Total Submissions: 54437 My Submissions
Implement int sqrt(int x).
Compute and return the square root of x.
解法1:
调用Java API,Math.sqrt()。这个方法的底层实现是native。
Java AC
public class Solution { public int sqrt(int x) { return (int)Math.sqrt(x); }}解法2:二分搜索,无限逼近。注意2点:
1)、搜索0到x/2+1即可。
2)、两数相乘有可能越界,声明值为long型。
Java AC
public class Solution { public int sqrt(int x) { long low = 0; long high = x / 2 + 1; while(low <= high){ long mid = (low + high) >> 1; long tempNum = mid * mid; if(tempNum == x){ return (int)mid; } if(tempNum > x){ high = mid - 1; }else{ low = mid + 1; } } return (int)high; }}解法3:牛顿迭代法求开方
假设f(x)是关于x的函数,如图所示:
在Xn处的斜率为:
求得:
根据
得到递推公式:
Java AC
public class Solution { public int sqrt(int x) { double result = x; while(Math.abs(result * result - x) > 0.0001){ result = (result + x / result) / 2; } return (int)result; }}
0 0
- LeetCode: Sqrt(x)
- LeetCode sqrt(x)
- [Leetcode] Sqrt(x)
- LeetCode :Sqrt(x)
- leetcode 53: Sqrt(x)
- [LeetCode] Sqrt(x)
- Leetcode 69 sqrt(x)
- [Leetcode] Sqrt(x)
- leetcode:Sqrt(x)
- 【leetcode】sqrt(int x)
- [LeetCode]Sqrt(x)
- [leetcode]Sqrt(x)
- LeetCode-Sqrt(x)
- [leetcode] Sqrt(x)
- [leetcode] Sqrt(x)
- LeetCode - Sqrt(x)
- leetcode之sqrt(x)
- LeetCode | Sqrt(x)
- hdu 4145 Cover The Enemy
- Yii 面包屑用法
- perl 工作中需要的lib学习
- 服务器两次fork()的目的
- 关于手机DNS设置的问题,
- 【LeetCode】Sqrt(x)
- HashMap的实现
- startActivityForResult用法详解&&Fragment中startActivityForResult的用法
- 利用MyBatis Generator自动生成DO&DAO&mapper
- SimpleDateFormat使用详解
- 在VS中设置预编译头从而提高编译速度
- NYOJ236 心急的C小加&NYOJ 16 矩形嵌套
- 位与或非
- Gas Station