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 };
扫描原容器,
对于每一个元素。在关联容器中查找是否有元素能与其相加得到目的数字。
若有,则输出结果。
若没有,则将该元素插入关联容器中,关键字为该元素字面值,值为该元素下标。
这样能够保证只要一对数字满足条件,必然能够快速找到对应下标并输出。
原文:https://www.cnblogs.com/zhuangbijingdeboke/p/8831246.html