原题
https://leetcode.cn/problems/sqrtx/description/
思路
二分查找
复杂度
时间:O(log(n))
空间:O(log(n))
Python代码
class Solution:
def mySqrt(self, x: int) -> int:
l, r = 0, x
while l <= r:
mid = (l + r) // 2
if mid * mid <= x and (mid + 1) * (mid + 1) > x:
return mid
elif mid * mid < x:
l = mid + 1
else:
r = mid - 1
return l
Go代码
func mySqrt(x int) int {
l, r := 0, x
for l <= r {
mid := (l + r) / 2
if mid*mid <= x && (mid+1)*(mid+1) > x {
return mid
} else if mid*mid < x {
l = mid + 1
} else {
r = mid - 1
}
}
return l
}
357

被折叠的 条评论
为什么被折叠?



