第一题使用暴力方法超时,使用C++的map
#include<iostream>
#include<map>
#include<vector>
using namespace std;
class Solution{
public:
vector<int> Sum(vector<int> &numbers,int target){
vector<int> result;
map<int,int> m;
int num=numbers.size();
int i,dif,index1,index2;
for(i=0;i<num;i++)
{
dif=target-numbers[i];
if(m.count(dif))
{
index1=m.find(dif)->second+1;
index2=i+1;
result.push_back(index1);
result.push_back(index2);
return result;
}
else
{
m.insert(make_pair(numbers[i],i));
}
}
}
};
int main()
{
int a[]={6,7,4,8,11,3};
vector<int> v1,v2;
int i,target=14;
for(i=0;i<6;i++)
v1.push_back(a[i]);
Solution s;
v2=s.Sum(v1,target);
if(v2.size())
cout<<v2[0]<<" "<<v2[1]<<endl;
system("PAUSE");
return 0;
}