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

53次阅读

共计 382 个字符,预计需要花费 1 分钟才能阅读完成。

第一题 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

正文完
 0