LeetCode 69. x 的平方根 (Sqrt(x))[简单]

lework · 2020年03月26日 · 最后由 lework 回复于 2020年03月26日 · 129 次阅读

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1:

输入: 4
输出: 2

示例 2:

输入: 8
输出: 2
说明: 8 的平方根是 2.82842..., 

由于返回类型是整数,小数部分将被舍去。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sqrtx 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

牛顿迭代法

在迭代过程中,以直线代替曲线,用一阶泰勒展式(即在当前点的切线)代替原曲线,求直线与 xx 轴的交点,重复这个过程直到收敛。

知乎问答

class Solution:
    def mySqrt(self, x: int) -> int:
        if x <= 1:
            return x

        r = x
        while r > x /r:
            r = ( r + x / r ) // 2
        return int(r)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册