摘要
leetcode刷题笔记
如有错误,欢迎指正。
前言
加油
34、在排序数组中查找元素的第一个和最后一个位置(二分法)(查找区间)
描述&样例
给定一个增序的整数数组和一个值,查找该值第一次和最后一次出现的位置。
输入是一个数组和一个值,输出为该值第一次出现的位置和最后一次出现的位置(从 0 开始);如果不存在该值,则两个返回值都设为-1。
Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]
思路&代码
利用增序性质,使用二分法找到数组中第一个等于target 的位置和第一个大于target的位置减一。
使用左闭右开的写法。
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
if (nums.empty()) return vector<int>{
-1