您的位置:首页 > 其它

leetcode Search for a Range

2015-04-22 22:04 363 查看
代码:

#include<iostream>
#include<vector>

using namespace std;

int searchSmallest(int A[], int n, int target){
int l = 0;
int r = n - 1;
while (l <= r){
int mid = (l + r) / 2;
if (target <= A[mid]){
r = mid-1;
}
else{
l = mid+1;
}
}
if (A[r + 1] == target)
return r + 1;
else
return -1;
}

int searchLargest(int A[], int n, int target){
int l = 0;
int r = n - 1;
while (l <= r){
int mid = (l+ r) / 2;
if (target >= A[mid]){
l = mid+1;
}
else{
r = mid - 1;
}
}
if (A[l-1] == target)
return l - 1;
else
return -1;
}

vector<int> searchRange(int A[], int n, int target) {
vector<int> result;
int a = searchSmallest(A, n, target);
int b = searchLargest(A, n, target);
result.push_back(a);
result.push_back(b);
return result;
}

int main(){
int a[] = {1};
cout << searchSmallest(a, 1, 1) << endl;
cout << searchLargest(a, 1, 1) << endl;
vector<int> result = searchRange(a, 1, 1);
for (int i = 0; i < result.size(); i++){
cout << result[i] << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: