class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
int begin=0,end=nums.size()-1;
vector<int>a2{0,0};
if(nums.empty()||nums[0]>target||nums[end]<target)
return {-1,-1};
while(nums[begin]!=target)
{
if(nums[end]==target)
{
begin=end;
break;
}
int middle=(begin+end)/2;
if(nums[middle]==target)
{
begin=middle;
break;
}
nums[middle]>target?end=middle:begin=middle;
if(end-begin==1)return{-1,-1};
}
int cc=begin,dd=begin;
while(cc<end&&nums[cc+1]==target)cc++;a2[1]=cc;
while(dd>0&&nums[dd-1]==target)dd--;a2[0]=dd;
return a2;
}
};
34.在排序数组中查找元素的第一个和最后一个位置
最新推荐文章于 2023-05-25 08:29:19 发布