35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
二分查找的方法,在最后没有找到target位置时要做的判断
- 判断是否为空
- 判断目标是否大于最后一位, 如果大于则插入位置为len.
- 二分查找,返回left的位置(思路如图)
因为查找到最后时形式为图中的两种形式,如果存在就是mid的位置,也是left的位置,
如果不存在大小比较后,left和right的变化如图
- 比mid大,left=mid+1,target大于mid以及他左侧的所有数,小于mid右侧所有数,即插入位置为mid+1即left
- 比mid小,right=mid-1,target小于mid左侧的所有数,即插入位置为mid,即left