思路:用map将目标值-该数的值存下,后面遍历数组发现该值已存在表示找到。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int> m; vector<int> res; int i; for(i=0;i<nums.size();i++) { map<int,int>::iterator ite; ite=m.find(nums[i]); if(ite!=m.end()) { res.push_back(m[nums[i]]); res.push_back(i); break; } m[target-nums[i]]=i; } return res; } };
|