class Solution:
def mySqrt(self, x: int) -> int:
# 左闭右闭
l = 0
r = x # 注意和列表差异,len(nums)-1, 但sqrt当x=0或1时要包含
while l <= r:
mid = l + (r - l) // 2
if mid * mid == x:
return mid
elif mid * mid < x:
l = mid + 1
else:
r = mid - 1
return r # 注意输出, 可以输出l-1或输出r