【力扣100】35.搜索插入位置 || 二分查找
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
n=len(nums)
i,j=0,n-1
while i<=j:
mid=i+(j-i)//2
if nums[mid]==target:
return mid
elif target<nums[mid]:
j=mid-1
else:
i=mid+1 #包含两种情况,1.target在mid右边 2.没有找到target,返回mid+1
return i
思路是:
- 经典二分查找,框架就是i,j 分别指向数组的首尾
- 出查找条件是
i<=j
- 注意else里包含的两种情况