1.Search Insert Position
l, r = 0, len(nums) - 1
while l <= r:
m = (l + r)/2
if nums[m] > key:
r = m - 1
if r >= 0:
if nums[r] < key:
return r + 1
else:
return 0
elif nums[m] < key:
l = m + 1
if l < len(nums):
if nums[l] > key:
return l
else:
return len(nums)
else:
return m
此类问题算法性能应为O(log(n)),应从左右两端向中间逼近,每次范围缩小为当前的1/2