二分
class Solution {
public:
vector searchRange(vector& nums, int target) {
vectorout={-1,-1};
if(nums.empty()||nums[0]>target||nums[nums.size()-1]
// cout<
while(i>-1&&nums[i]==target){
out[0]=i;
i--;
}
while(j
out[1]=j;
j++;
}
break;
}else if(nums[i]==target)j=i;
else if(nums[j]==target)i=j;
else{
if(i==j||i==j-1)break;
if(nums[(i+j)/2]==target){
i=(i+j)/2;
j=i;
}else if(nums[(i+j)/2]>target)j=(i+j)/2;
else i=(i+j)/2;
}
}
return out;
}
};
双指针
class Solution {
public:
vector searchRange(vector& nums, int target) {
vectorout={-1,-1};
if(nums.empty())return out;
int slow=0,fast=nums.size()-1;
while(fast>=slow){
// cout<