def mySqrt(x):
'''
二分法查找 O(nlogn)
'''
if x == 1:
return 1
low, high = 0, int(x / 2)
while low <= high:
mid = int((low + high) / 2)
if mid * mid == x:
return mid
elif mid * mid < x:
low = mid + 1
elif mid * mid > x:
high = mid - 1
return low-1