共计 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
正文完