LeetCode Sqrt(x)
来源:互联网 发布:三国志9优化伴侣怎么用 编辑:程序博客网 时间:2024/06/05 04:52
LeetCode解题之Sqrt(x)
原题
求一个数的平方根。
注意点:
- 结果返回整数,舍去小数,不是四舍五入
例子:
输入: x = 5
输出: 2
解题思路
采用牛顿迭代法,通过逼近来求方程 y=x^2+a
的解。接单介绍一下牛顿迭代法,如下图,求方程曲线与y轴的交点就是方程的解。随意取一个值 X0
,找出曲线在 X0
处的切线,该切线与y轴的交点为 X1
,再求 X1
处的切线的交点,可以看出来交点会不断的向目标值靠近,现在确定一个阈值就可以找出近似解了。由于平方根是正数,所以初始的取值应为一个正数。
注:图片来源于搜索引擎
AC源码
class Solution(object): def mySqrt(self, x): """ :type x: int :rtype: int """ result = 1.0 while abs(result * result - x) > 0.1: result = (result + x / result) / 2 return int(result)if __name__ == "__main__": assert Solution().mySqrt(5) == 2 assert Solution().mySqrt(0) == 0
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
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)
- fopen,fopen_s,_wfopen_s与_fsopen, _wfsopen的区分
- 原码,反码,补码
- php扩展geoIP的使用
- 【JS学习笔记】JS基础中:流程控制
- 4016: [FJOI2014]最短路径树问题 点分治
- LeetCode Sqrt(x)
- sync、fsync、fdatasync三个函数以及O_SYNC标志位的区别
- 栈和队列
- SQL语句
- weblogic安全加强:在Console中设定Administration Port
- Python-用filter()删除1~100的素数和一些思考
- Mysql数据库带参数的搜索语句
- Max Sum 1003
- Django静态文件配置