关于golang:golangleetcode中级x的平方根两数相除分数到小数

第一题 x的平方根

题目

二分查找

对于算术平方根的计算,咱们能够应用二分查找一直放大边界,最终找到其算术平方根

具体代码

func mySqrt(x int) int {
    l, r := 0, x
    ans := -1
    for l <= r {
        mid :=  (r + l) / 2
        if mid * mid <= x {
            ans = mid
            l = mid + 1
        } else {
            r = mid - 1
        }
    }
    return ans
}

成果如下

牛顿迭代法

代码

func mySqrt(x int) int {
    if x == 0 {
        return 0
    }
    C, x0 := float64(x), float64(x)
    for {
        xi := 0.5 * (x0 + C/x0)
        if math.Abs(x0 - xi) < 1e-7 {
            break
        }
        x0 = xi
    }
    return int(x0)
}

复杂度剖析

工夫复杂度:O(logx)。

空间复杂度:O(1)。

第二题 两数相除

题目

思路

https://leetcode-cn.com/probl…

ovo

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理