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 }