69. Sqrt(x)
# Easy
暴力解法:从1到x循环
Binary search: 用loop写替代recursive
class Solution:
def mySqrt(self, x: int) -> int:
# edge case
if x == 1:
return 1
#regular case
start = 1
end = x
while start+1 < end:
mid = start + (end-start)//2
result = mid*mid
if x == result:
return mid
if result < x:
start = mid
else:
end = mid
if start*start <= x:
return start
else:
return end
Last updated
Was this helpful?