1、题目描述
2、题目分析
考虑使用hashMap的方式将数组中的每个元素和下表对应存储起来,然后遍历数组,计算target 和 数组中每个元素的差值,在hashMap中寻找,一直到找到最后一对。
3、代码
1 vector twoSum(vector & nums, int target) { 2 vector ans; 3 unordered_multimapm; 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 }