LeetCode---Two Sum
2015-09-26 10:32
309 查看
题目大意:给出一个数组和一个目标数字,从数组中找出两个元素之和等于目标数字,最后返回这两个元素的索引。索引1必须小于索引2
算法思想:
遍历数组将数组中的元素和索引存入multimap中,然后再次遍历数组,判断target-nums[i]是否在map中,如果在则判断该索引是否和nums[i]的索引相同,如果不相同则返回这两个数的索引,反之继续遍历数组。
代码如下:
算法思想:
遍历数组将数组中的元素和索引存入multimap中,然后再次遍历数组,判断target-nums[i]是否在map中,如果在则判断该索引是否和nums[i]的索引相同,如果不相同则返回这两个数的索引,反之继续遍历数组。
代码如下:
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { multimap<int,int> intIndex; for(int i=0;i<nums.size();++i){ intIndex.insert(make_pair(nums[i],i+1)); } multimap<int,int>::iterator pos; vector<int> innums; for(int i=0;i<nums.size();++i){ int res=target-nums[i]; for(pos=intIndex.lower_bound(res);pos!=intIndex.upper_bound(res);++pos){ if(pos->second!=i+1){ innums.push_back(min(i+1,pos->second)); innums.push_back(max(i+1,pos->second)); return innums; } } } } };
相关文章推荐
- win8无线受限,有效解决方案整理
- LeetCode1 Two Sum
- 《大道至简》第二篇读后感
- [LeetCode#68] Text Justification
- 配置Web站点的虚拟目录
- CAS 自定义数据源
- 再论时间延迟(Timing)
- TOMCAT内存溢出及大小调整
- POJ 3320 Jessica's Reading Problem (尺取法_滑动窗口,阅读最少页数)
- 经典笔试面试题总结(一)
- UltraPullToRefreshWithLoadMore (为UltraPullToRefresh添加上拉加载更多功能)
- HDU - 1074 Doing Homework(状态压缩)
- POJ 1331
- 实时系统的介绍
- 女人和和尚的对话
- 黑马程序员——Java基础(三)之运算符、键盘录入、流程控制语句
- linux/ubuntu下su进入toor用户提示“认证失败”的解决方案
- 推荐十款超赞的Google Chrome扩展插件
- MATLAB cell & struct
- 一周总结