35. 搜索插入位置

- target在数组中,就返回下标;不在数组中,就返回插入的位置。
- 我查找采用二分查找,如果不在数组中,插入的位置也需要跟最后high/low所指的数字进行比较,如果相比小或等于则插入位置为low/high,否则插入位置为low+1。
代码
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
low,high = 0,len(nums)-1
while low < high:
mid = low + (high-low)//2
num = nums[mid]
if target == num:
return mid
elif target < num:
high = mid - 1
else:
low = mid + 1
if target <= nums[low] :
return low
else:
return low + 1
cheat sheet
- List 是数据结构,nums才是数组名;
- low/high是下标,nums[low]/nums[high]才是数组元素。