主要思想:二分查找
class Solution:
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
if x==0:
return 0
elif x==1:
return 1
else:
l = 0
mid=int(x/2)
r = x
while(True):
if mid*mid == x:
return int(mid)
elif mid*mid >x:
r =mid-1
mid = int((l+r)/2)
continue
else:
if (mid+1)*(mid+1) >x:
return mid
l = mid +1
mid = int((l+r)/2)
continue