two sum
2015-09-29 10:32
253 查看
给一个整数数组,找到两个数使得他们的和等于一个给定的数target。
你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是1到n,不是以0开头。
您在真实的面试中是否遇到过这个题?
Yes
样例
numbers=[2, 7, 11, 15], target=9
return [1, 2]
注意
你可以假设只有一组答案。
你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是1到n,不是以0开头。
您在真实的面试中是否遇到过这个题?
Yes
样例
numbers=[2, 7, 11, 15], target=9
return [1, 2]
注意
你可以假设只有一组答案。
class Solution { public: /* * @param numbers : An array of Integer * @param target : target = numbers[index1] + numbers[index2] * @return : [index1+1, index2+1] (index1 < index2) */ vector<int> twoSum(vector<int> &nums, int target) { // write your code here unordered_map<int,int>m; for(int i=0;i<nums.size();++i){ m[nums[i]]=i+1; } sort(nums.begin(),nums.end()); int left=0,right=nums.size()-1; while(left<right){ int sum=nums[left]+nums[right]; if(sum==target) break; else if(sum<target) left++; else right--; } vector<int>res(2); int l=nums[left],r=nums[right]; if(m[l]<m[r]){ res[0]=m[l]; res[1]=m[r]; return res; }else{ res[0]=m[r]; res[1]=m[l]; return res; } } };
相关文章推荐
- 给普通的view添加边框和背景 (关于layer的一些属性)
- 高情商就是说话让人感到舒服
- 发送短信功能
- phpMyAdmin导入文件突破2M大小
- [C#] AY.WPF-图形编程-高中生为起点-研究报告1
- DNS作用
- java多态性理解
- XEN虚拟化概论
- time
- 6410 声卡wm9713 驱动分析
- 现在,UICollectionViews有了简单的重排功能
- Win7上java开发环境搭建
- 类中构造函数的重载 + 校验
- JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内
- 稀疏编码直方图----一种超越HOG的轮廓特征
- numpy 文件存取
- curl_setopt函数—模仿用户行为
- solr优化之增量索引
- 动效设计整理
- 华为机试——笨笨熊搬家(打包篇)