35. Search Insert Position
Description:
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Example 1:
Input: [1,3,5,6], 5
Output: 2
Example 2:
Input: [1,3,5,6], 2
Output: 1
Example 3:
Input: [1,3,5,6], 7
Output: 4
Example 4:
Input: [1,3,5,6], 0
Output: 0
解题思路:
将target值和vector中的值逐个进行比较,若nums中含有该元素,返回该元素下标,若nums中无该元素,返回插入位置的下标,注意target值小于nums第一个元素或者大于最后一个元素的情况。
代码如下:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int i;
if(target < nums[0]) {
return 0;
}
if(target > nums[nums.size()-1]) {
return nums.size();
}
for(i = 0; i < nums.size(); i++) {
if(target == nums[i]) {
return i;
}
if(target > nums[i] && target < nums[i+1]) {
return i+1;
}
}
return 0;
}
};