69. Sqrt(x)
来源:互联网 发布:网络商标查询 编辑:程序博客网 时间:2024/06/08 07:01
Implement int sqrt(int x).
Compute and return the square root of x.
题意:求一个数的平方根。二分查找
class Solution {public: int mySqrt(int x) { int l, r; long long mid; l = 0, r = x; while(l <= r){ mid = l + (r - l) / 2; if(mid * mid == x){ return mid; } else if(mid * mid < x){ l = mid + 1; } else if(mid * mid > x){ r = mid - 1; } } return r; }};
思路二:牛顿法(好牛逼的样子而且速度比上面方法快)
《算法设计与分析基础》11.4中根据方程Xn+1 = 1/2(Xn + D/Xn), n = 0,1,…计算根号D, X0 = (1 + D)/2;
书中一个小例子:计算根号2,在第6位小数的地方对数字四舍五入
X0 = (1 + 2)/2 = 1.500000
X1 = (X0 + 2/X0)/2 = 1.416667
X2 = (X1 + 2/X1)/2 = 1.414216
X3 = (X2 + 2/X2)/2 = 1.414214
X4 = (X3 + 2/X3)/2 = 1.414214
这时候可以停下来,因为x4 = x3 = 1.414214
class Solution {public: int mySqrt(int x) { double D = (double)x; double xi = (1 + D) / 2; double delta = D - xi; while(delta > 0.1){ double z = (xi + D / xi) / 2; delta = xi - z; xi = z; } return (int)xi; }};
阅读全文
0 0
- LeetCode 69. Sqrt(x)
- LeetCode 69.Sqrt(x)
- LeetCode --- 69. Sqrt(x)
- [Leetcode] 69. Sqrt(x)
- [leetcode] 69.Sqrt(x)
- 69.Sqrt(x)
- 69. Sqrt(x)
- Leetcode-69.Sqrt(x)
- leetcode--69.sqrt(x)
- 69. Sqrt(x)
- LeetCode 69. Sqrt(x)
- leetcode 69. Sqrt(x)
- 【LeetCode】69. Sqrt(x)
- 69. Sqrt(x) LeetCode
- 69. Sqrt(x)
- 69. Sqrt(x)
- [leetcode] 69. Sqrt(x)
- 69. Sqrt(x)
- web项目获取webpp文件下的图片
- maven 命令学习记录
- iOS NSDecimalNumber用法 加减乘除 解决字符串转float类型不准确 结尾无法去0处理 用于货币处理
- Oracle常用查询(持续更新中...)
- 用AFNetworking请求的时候GET正常,而POST时后台缺收不到数据,最坑的就是安卓还是正常的
- 69. Sqrt(x)
- Linux下Mongdb的使用(一)
- 多线程之间消息传递和二进制数据拷备
- Appium之Mac配置Appium全过程
- 编译错误 jump to case label [-fpermissive]
- c++ 深浅拷贝
- 模拟退火算法
- Android窗口机制分析与UI管理系统
- 关于c++ 中内存拷贝 内存写超的情况分析