35.搜索插入位置
对于target在nums中插入的位置,只有四种情况
- target比nums中所有元素都小
- target比nums中所有元素都大
- target在nums中出现过
- target在nums中没有出现
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if target <= nums[0]: # target比nums中所有元素都小,插到第一位
return 0
if target > nums[-1]: # target比nums中所有元素都大,插到最后一位
return len(nums)
i, j = 0, len(nums) - 1 # 在nums中出现,二分查找
while j > i+1:
k = (i +j) // 2
if nums[k] >= target:
j = k
else:
i = k
return j