class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target)
{
const int n=nums.size();
vector<int> res(2,-1);
int start=0;int end=n-1;
while(start<=end)
{
int mid=start+(end-start)/2;
if(nums[mid]>target)
end=mid-1;
else if(nums[mid]<target)
start=mid+1;
else
{
if(mid==0 || nums[mid-1]!=target)
{
res.clear();
res.push_back(mid);
break;
}
else
end=mid-1;
}
}
start=0; end =n-1;
while(start<=end)
{
int mid=start+(end-start)/2;
if(nums[mid]>target)
end=mid-1;
else if(nums[mid]<target)
start=mid+1;
else
{
if(mid==n-1 || nums[mid+1]!=target)
{
res.push_back(mid);
break;
}
else
start=mid+1;
}
}
return res;
}
};Search for a Range
最新推荐文章于 2022-03-08 23:18:06 发布
本文介绍了一种高效搜索特定数值在数组中的起始和结束位置的算法,通过二分查找技术实现,确保在复杂数据集上也能快速定位目标值。
3252

被折叠的 条评论
为什么被折叠?



