LeetCode题解之 two sum 问题

1、题目描述

2、题目分析

考虑使用hashMap的方式将数组中的每个元素和下表对应存储起来,然后遍历数组,计算target 和 数组中每个元素的差值,在hashMap中寻找,一直到找到最后一对。

3、代码

 1 vector<int> twoSum(vector<int>& nums, int target) {
 2         vector<int> ans;
 3         unordered_multimap<int,int> m;
 4         for( size_t i = 0; i< nums.size() ; i++)
 5             m.insert(make_pair(nums[i],i));
 6         
 7         for(size_t i = 0; i < nums.size() ; i++)
 8         {
 9             auto ite = m.find( target - nums[i] );
10             if(  ite != m.end() && i < ite->second )
11             {
12                 ans.push_back(i);
13                 ans.push_back(ite->second); 
14             }
15         }     
16         return ans;    
17         
18     }
pp
原文地址:https://www.cnblogs.com/wangxiaoyong/p/8982651.html