Fork me on GitHub

leetcode之35. 搜索插入位置

题目描述:

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

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

示例 1:

1
2
3
> 输入: [1,3,5,6], 5
> 输出: 2
>

示例 2:

1
2
3
> 输入: [1,3,5,6], 2
> 输出: 1
>

示例 3:

1
2
3
> 输入: [1,3,5,6], 7
> 输出: 4
>

示例 4:

1
2
3
> 输入: [1,3,5,6], 0
> 输出: 0
>

解题思路:

时间复杂度:$O(n)$, 空间复杂度:$O(1)$.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int flag;
for(int i = 0; i < nums.size(); i++)
{
if(target == nums[i])
{
flag = i;
return flag;
}
else{
if(target < nums[0])
{
flag = 0;
return flag;
}
else if(target > nums[nums.size() - 1])
{
flag = nums.size();
return flag;
}
else if(target >= nums[i] && target <= nums[i + 1])
{
flag = i+1;
return flag;
}
}
}
}
};