Leetcode35 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:

输入: [1,3,5,6], 5 输出: 2

示例 2:
输入: [1,3,5,6], 2 输出: 1

示例 3:
输入: [1,3,5,6], 7 输出: 4

示例 4:
输入: [1,3,5,6], 0 输出: 0

思路:在二分算法的基础上改进,如果在nums中找到,则返回对应的索引。如果没有找到target则返回应该插入的索引
满足条件如下:
nums[mid] ==target或者nums[mid-1] nums[mid] 如果第一次循环没有找到,那么二分缩小搜索范围:
nums[mid] nums[mid]>target则end = mid-1
【Leetcode35 搜索插入位置】注意:上述方法需要处理边界问题,否则无法正确返回索引。
class Solution { public: int searchInsert(vector& nums, int target) { int begin= 0 , end = nums.size()-1; //处理边界 if(targetnums[end])return end+1; while(begin<=end) { int mid = (begin+end)/2; if((nums[mid]==target)||(nums[mid-1]


    推荐阅读