二分查找
def binary_find(num_list, x):
num_list = sorted(num_list)
left, right = 0, len(num_list)
while(left<right):
mid = (left+right)/2
if num_list[mid] > x:
right = mid
elif num_list[mid] < x:
left = mid + 1
else:
return mid
开平方根
class Solution:
def mySqrt(self, x: int) -> int:
if x < 0:
high = 1
else:
high = x
low = 0
while low < high:
mid = (low + high) / 2
if mid ** 2 > x:
high = mid
elif mid ** 2 < x:
low = mid
if abs(mid ** 2 - x) <= 0.01:
return mid