class Solution {
public:
vector<int> searchRange(int A[], int n, int target) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
//if (!A) return NULL;
int l=0;
int r=n;
int position=-1;
vector<int> res;
while (l<=r) {
int mid=(l+r)/2;
if (target==A[mid]) {
position=mid;
break;
}else if (target>A[mid]) {
l=mid+1;
}else {
r=mid-1;
}
}
if (position==-1) {
res.push_back(-1);
res.push_back(-1);
return res;
}
int left=position;
while (A[left-1]==target) {
if(left>0) {
left--;
}else{
break;
}
}
res.push_back(left);
while (A[position+1]==target) {
if(position<n-1) {
position++;
}else {
break;
}
}
//position--;
res.push_back(position);
return res;
}
};
Search for a Range
最新推荐文章于 2022-01-21 16:09:17 发布