第一题的map版本

来源:互联网 发布:程序员 英文面试 编辑:程序博客网 时间:2024/06/09 16:46

第一题使用暴力方法超时,使用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;}


 

0 0
原创粉丝点击