35. 搜索插入位置

解题思路:

1.函数传入 2个参数 ,一个是vector容器以引用传递 , 一个是target目标值

2.用for循环遍历容器 去判断当前循环的nums[i] 是否 == target ,成立则返回其索引,反之则判断 target < nums[i] 如成立则 插入到 nums.begin{} + i 处的索引,并返回索引数值

3.循环外是末尾添加的情况 ,在nums数组末尾添加target,并返回最后数组的下标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int searchInsert(vector<int> &nums, int target) {
for (int i = 0
; i < nums.size()
; ++i) {
if (nums[i] == target) {
return i;
} else if (target < nums[i]) {
nums.insert(nums.begin() + i, target);
return i;
}
}
nums.push_back(target);
return nums.size() - 1;
}

};
时间复杂度 空间复杂度
$O(n)$ $O(1)$