使用二分查找,初始左右边界为0,x
class Solution:
def mySqrt(self, x: int) -> int:
l = 0
r = x
mid = x // 2
while(l <= r):
mid = (l + r) // 2
if mid * mid < x:
l = mid + 1
elif mid * mid > x:
r = mid - 1
else:
return mid
return r