码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Two Sum

时间:2015-08-15 13:15:53      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

The basic idea is to maintain a hash table for each element num in nums, using num as key and its index (1-based) as value. For each num, search for target - num in the hash table. If it is found and is not the same element as num, then we are done.

The code is as follows. Note that each time before we add num to mp, we search for target - num first and so we will not hit the same element.

 1 class Solution { 
 2 public:
 3     vector<int> twoSum(vector<int>& nums, int target) {
 4         int n = nums.size();
 5         unordered_map<int, int> mp; 
 6         for (int i = 0; i < n; i++) {
 7             if (mp.find(target - nums[i]) != mp.end())
 8                 return {mp[target - nums[i]], i + 1};
 9             mp[nums[i]] = i + 1;
10         }
11     }
12 };

 

[LeetCode] Two Sum

标签:

原文地址:http://www.cnblogs.com/jcliBlogger/p/4732091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!