9月26日,百度一二面:
1、给定一数组,输出满足2a=b(a,b代表数组中的数)的数对,要求时间复
1、给定一数组,输出满足2a=b(a,b代表数组中的数)的数对,要求时间复
杂度尽量低。
#include<iostream>
#include<set>
using namespace std;
void printMatchPair(int source[], int n){
if(n <= 0)
return ;
set<int> sourceSet;
int* doubleSource = new int[n];
for(int i = 0; i < n; i++){
doubleSource[i] = 2*source[i];
sourceSet.insert(source[i]);
}
set<int>::iterator iter;
for(int i = 0; i < n; i++){
iter = sourceSet.find(doubleSource[i]);
if(iter != sourceSet.end())
cout << doubleSource[i]/2 << " " << doubleSource[i] << endl;
}
return;
}
int main(int argc, char* args[]){
int source[] = {4, 1, 8, 2};
int n = 4;
printMatchPair(source, n);
return 0;
}