35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。
二分查找的方法,在最后没有找到target位置时要做的判断

  1. 判断是否为空
  2. 判断目标是否大于最后一位, 如果大于则插入位置为len.
  3. 二分查找,返回left的位置(思路如图)

因为查找到最后时形式为图中的两种形式,如果存在就是mid的位置,也是left的位置,
如果不存在大小比较后,left和right的变化如图

  • 比mid大,left=mid+1,target大于mid以及他左侧的所有数,小于mid右侧所有数,即插入位置为mid+1即left
  • 比mid小,right=mid-1,target小于mid左侧的所有数,即插入位置为mid,即left
    35. 搜索插入位置