【LeetCode】在有序数组中找到给定元素或给定元素的插入位置:Search Insert Position
程序员文章站
2022-03-13 12:27:29
...
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
代码如下:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
return distance(nums.begin(), lower_bound(nums.begin(), nums.end(), target));
}
template<typename ForwardIterator, typename T>
ForwardIterator lower_bound(ForwardIterator start, ForwardIterator end, T target) {
while(start != end) {
auto mid = next(start, distance(start, end)/2);
if(*mid < target) start = mid + 1;
else end = mid;
}
return start;
}
};
上一篇: mysql怎样修改列属性
下一篇: 海量数据中快速找到最大的100个