使用二分查找
class Solution(object):
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
if x <= 1:
return x
left = 0
right = x
mid = (left + right) // 2
while left <= right:
if mid * mid == x:
return mid
elif mid * mid < x:
left = mid + 1
else:
right = mid - 1
mid = (left + right) // 2
return mid