LeetCode题解:Sqrt(x)
来源:互联网 发布:pat 知乎 编辑:程序博客网 时间:2024/06/06 14:23
Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
思路:
可以考虑二分搜索,但是二分搜索的起点不好判定,不过可以预先计算好numeric_limits<int>::max()的平方根,然后搜索,这样范围就缩小很多而且避免了溢出。有的人用long来计算,这样在很多情况下也是可以避免溢出的。但是必须注意的是C++标准中long的最大值可以等于int的最大值。没有规定long的长度一定大于(可以等于)int的长度。
这里用牛顿迭代法处理。
题解:
class Solution {public: int sqrt(int x) { if (x == 0) return 0; if (x == 1) return 1; // newton iteration double xprev = 1; double x0 = xprev + 2; while(abs(x0 - xprev) > 0.5) { xprev = x0; x0 = x0 - (x0 * x0 - x) / ( 2 * x0 ); } return x0; }};
- LeetCode题解:Sqrt(x)
- LeetCode 题解(167): Sqrt(x)
- LeetCode - sqrt 题解
- 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)
- Integer to Roman
- NoSQL:单服务器如何应付每秒75万次查询
- Roman to Integer
- 黑马程序员_java面向对象_构造函数
- LeetCode题解:Divide Two Integers
- LeetCode题解:Sqrt(x)
- Django 数据库操作
- Django View
- Django template
- Django 通用视图
- ssh执行远程服务器需要sudo提权的脚本
- vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
- python计算程序开始到程序结束的运行时间和程序运行的CPU时间
- php遍历文件夹所有文件子文件夹函数