Two Sum
2015-10-07 19:22
337 查看
Two Sum
题目
Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution.
Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
译文
给定一个整数数组,找出相加等于特定目标数的两个数。函数twoSum返回两个数在数组中的位置,index1必须比index2小,两个数都不是从零开始的。你可以假设每组输入都只有一个确定的答案。分析
难度medium我的代码
class Solution { public: vector<int> twoSum(vector<int> &numbers, int target) { int i, sum; vector<int> results; map<int, int> hmap; for(i=0; i<numbers.size(); i++){ if(!hmap.count(numbers[i])){ hmap.insert(pair<int, int>(numbers[i], i)); } if(hmap.count(target-numbers[i])){ int n=hmap[target-numbers[i]]; if(n<i){ results.push_back(n+1); results.push_back(i+1); cout<<n+1<<", "<<i+1<<endl; return results; } } } return results; } };
相关文章推荐
- 数据密集型 和 cpu密集型 event loop
- hdu 3395 Special Fish 最大费用流
- undefined reference to 'pthread_create'问题解决
- vim打开文件时显示行号
- svn 使用配置详解
- Redis内存使用优化和存储
- Java泛型T的应用 获取T类型
- hadoop_hbase Java API 介绍及使用示例
- 数字在排序数组中出现的次数
- 对于大学生应该如何选择软件测试方面的企业?
- redis部署使用
- HDU5122(树状数组)
- 我的编码规范
- 20135306黄韧 信息安全系统设计基础第三周学习总结(正式版)
- JS手机触摸屏的事件用法详解
- 关系运算优化
- HDU5115(区间DP)
- CreateProcess启动隐藏的外部程序 .
- 装饰模式
- 测试需要什么技术?