题目
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素
转载连接 https://leetcode-cn.com/problems/search-insert-position/
输入: [1,3,5,6], 2
输出: 1
解答
方法一:
这个题目感觉不需要深入分析就是各种if判断,把情形都覆盖了就可以了
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if (nums.front() >= target) {
return 0;
}
if (nums.back() < target) {
return nums.size();
}
if (nums.back() == target) {
return nums.size() - 1;
}
for (int i = 0; i < nums.size() - 1; i++) {
if (nums[i] == target) {
return i;
} else if (nums[i + 1] == target) {
return i + 1;
} else if (nums[i] > target){
return i - 1;
}
else if (nums[i] < target && nums[i + 1] > target) {
return i + 1;
}
}
return nums.size();
}
};