首页 > 其他 > 详细

[LeetCode] Two Sum

时间:2015-08-15 13:14:26      阅读:142      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!