目录
一、题目解析
1.如果能在给定数组中找到目标值,则返回索引
2.如果目标值不存在,则返回将被插入的位置
3.必须使用时间复杂度为O(logN)的算法
二、算法解析
1.升序数组和时间复杂度O(logN),二分查找
2.二段性
细节问题
对于示例3的情况需要判断nums[nums.size()-1]是否大于target,小于则返回nums.size()
三、代码示例
看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!


class Solution {
public:
int searchInsert(vector<int>& nums, int target)
{
int left = 0,right = nums.size()-1;
while(left<right)
{ int mid = (left+right)/2;
if(nums[mid]<target) left = mid + 1;
else right = mid;
}
return target>nums[nums.size()-1] ? right+1 : right;
}
};