class Solution {
public:
vector<int> searchRange(int A[], int n, int target) {
vector<int> ret;
int left=0,right=n-1,mid=0;
//二分查找
while(left<=right)
{
mid=left+(right-left)/2;
if(target==A[mid])
{
break;
}
else if(target>A[mid])
{
left=mid+1;
}
else
{
right=mid-1;
}
}
if(left>right)
{
ret.push_back(-1);
ret.push_back(-1);
}
else
{
int start=mid,end=mid;
while(start>=0 && target==A[start])
{
start--;
}
while(end<n && target==A[end])
{
end++;
}
ret.push_back((start>=0)?(start+1):0);
ret.push_back((end<n)?(end-1):(n-1));
}
return ret;
}
};
Search for a Range
最新推荐文章于 2022-03-08 23:18:06 发布