class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
l = 0
r = len(nums) - 1
while l<=r:
mid = (l+r)//2
if nums[mid] == target:
return mid
elif nums[mid]<target:
l = mid + 1
elif nums[mid]>target:
r = mid - 1
return l
就是很简单的二分查找。
return left是因为最后一步l和r两个标尺错开了,l所在的位置正好是目前的mid下一个的位置,按照题目的意思把这个数字插入l的位置,由于不需要返回插入后的列表,我们直接返回下标l就好了。