Leetcode搜索插入位置C++

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

你可以假设数组中无重复元素。

示例 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
以下是我的代码
 1 class Solution {
 2 public:
 3     int searchInsert(vector<int>& nums, int target) {
 4         if (find(nums.begin(),nums.end(),target)!=nums.end())
 5             return find(nums.begin(), nums.end(), target)-nums.begin();
 6         auto index = lower_bound(nums.begin(),  nums.end(), target);
 7         auto re=index-nums.begin();
 8         nums.insert(index, target);
 9         return re;
10     }
11 };

这里有个地方要注意一下,第6行的index在插入操作后好像出了点问题,估计是插入操作后容器有所改变所导致的,所以我提前计算了插入下标的位置

posted @ 2018-09-04 12:51  schbb  阅读(176)  评论(0)    收藏  举报