1 class Solution 
 2 {
 3 public:
 4     vector<int> twoSum(vector<int>& nums, int target) 
 5     {
 6         unordered_map<int,int> hash;
 7         for(int i=0;i<nums.size();i++)
 8         {   
 9             if(hash.find(target-nums[i])!=hash.end())
10                 return vector<int> {hash[target-nums[i]],i};
11             hash[nums[i]]=i;
12         }
13     }
14 };

扫描原容器,

对于每一个元素。在关联容器中查找是否有元素能与其相加得到目的数字。

若有,则输出结果。

若没有,则将该元素插入关联容器中,关键字为该元素字面值,值为该元素下标。

这样能够保证只要一对数字满足条件,必然能够快速找到对应下标并输出。

posted on 2018-04-14 12:52  高数考了59  阅读(111)  评论(0)    收藏  举报