首页 > 编程语言 > 详细

leetcode two Sum【数组】

时间:2015-03-23 21:19:05      阅读:218      评论:0      收藏:0      [点我收藏+]

题目链接:https://leetcode.com/problems/two-sum/

 1 /*题意:在数组中找出两个数的和等于target,输出下标*/
 2 
 3 /*思路:
 4  *将键值<value,index>存入map中,接着扫描数组,检查target与当前数的差值是否在map中
 5  *如果存在,返回结果
 6  *如果不存在,将当前数存入map中
 7  *
 8  *时间复杂度O(n):遍历一次数组
 9  *空间复杂度O(n):
10  */
11  
12 /*如果不要求有序的话,选unorderer_map较好*/
13  
14  
15 class Solution {
16 public:
17     vector<int> twoSum(vector<int> &numbers, int target) {
18         vector<int> ans;
19         unordered_map<int,int> mp;
20         int Size = numbers.size();
21         for(int i = 0; i < Size; i ++){
22             if(mp.find(target-numbers[i]) != mp.end()){
23                 ans.push_back(mp[target-numbers[i]]+1);
24                 ans.push_back(i+1);
25                 break;
26             }
27             if(mp.find(numbers[i]) == mp.end()) mp[numbers[i]] = i;
28         }
29         return ans;
30     }
31 };

 

leetcode two Sum【数组】

原文:http://www.cnblogs.com/jzmzy/p/4360858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!