0%

搜索插入位置

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

​ 请必须使用时间复杂度为 $O(log n)$ 的算法。

​ 利用双指针,从开头结尾同时查找。

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