[Leetcode]69. Sqrt(x)解析@Python
2017-08-27 11:47
381 查看
题目:
Implement int sqrt(int x).
Compute and return the square root of x.
题意:
编码实现开方函数 sqrt。
注意:返回值、输入值都是int。
1. 二分查找:
def mySqrt(self, x): l, r = 0, x while l <= r: mid = l + (r-l)//2 if mid * mid <= x < (mid+1)*(mid+1): return mid elif x < mid * mid: r = mid else: l = mid + 1
2.看到讨论区的一个方法,不知所云,查了资料才发现用的是数学公式的推导(牛顿法)。
来自: StefanPochmannclass Solution(object): def mySqrt(self, x): r = x while r*r > x: r = (r + x/r) / 2 #化简后的公式 return r
牛顿法公式:
x2=x1−x21−n2x1
其中x1是上次计算结果,x2是本次计算结果。相关文章推荐
- LeetCode 69 — Sqrt(x)(C++ Java Python)
- LeetCode-69-Sqrt(x) Python要用math.sqrt()
- 【leetcode】69. Sqrt(x)(Python & C++)
- 【LeetCode 69】Sqrt(x) (Python)
- [Leetcode By Python]69. Sqrt(x)
- LeetCode---69. Sqrt(x)---Python实现
- [Leetcode]@python 69. Sqrt(x)
- [leetcode:python]69.Sqrt(x)
- leetcode || 69、Sqrt(x)
- [Leetcode] 69. Sqrt(x) 解题报告
- Leetcode 69. Sqrt(x)
- leetcode-69. Sqrt(x)
- LeetCode-69-Sqrt(x)(二分法)-Medium
- [Leetcode]#69 Sqrt(x)
- LeetCode 69: Sqrt(x)
- LeetCode 69. Sqrt(x)
- Leetcode 69 sqrt(x)
- LeetCode - 50/69/367/633 - Pow(x, n)、Sqrt(x)
- LeetCode-69.Sqrt(x)
- [LeetCode] 69. Sqrt(x) 求平方根