博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Two Sum
阅读量:4957 次
发布时间:2019-06-12

本文共 1533 字,大约阅读时间需要 5 分钟。

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

 

感觉这个题限制太多了,可能会存在重复关键字,且可能是两个重复关键字之和等于target,这种情况下,只能一个关键字取前面的,一个取后面的,不能使两个的索引下标相同。又因为题目保证这样的两个数绝对存在,所以,可以直接让迭代器后移一位,也是相同的关键字。

 

C++代码实现:

#include#include
#include
using namespace std;class Solution{public: vector
twoSum(vector
&numbers, int target) { multimap
sum; size_t i=0; for(i=0; i
first; auto iter=sum.find(tmp); if(iter!=sum.end()) { if(map_it==iter) iter++; return vector
{min(map_it->second+1,iter->second+1),max(map_it->second+1,iter->second+1)}; } map_it++; } return vector
(); }};int main(){ vector
vec={ 0,4,0,3,0}; Solution s; vector
result=s.twoSum(vec,0); for(auto a:result) cout<
<<" "; cout<

运行结果:

可以看看:http://www.acmerblog.com/leetcode-two-sum-5223.html

转载于:https://www.cnblogs.com/wuchanming/p/4101835.html

你可能感兴趣的文章
Java基础常见英语词汇
查看>>
iOS并发编程笔记【转】
查看>>
08号团队-团队任务5:项目总结会
查看>>
SQL2005 删除空白行null
查看>>
mysql备份与恢复
查看>>
混沌分形之迭代函数系统(IFS)
查看>>
边框圆角Css
查看>>
使用Busybox制作根文件系统
查看>>
jpg图片在IE6、IE7和IE8下不显示解决办法
查看>>
delphi之模糊找图
查看>>
Javascript模块化编程的写法
查看>>
大华门禁SDK二次开发(二)-SignalR应用
查看>>
oracle 使用job定时自动重置sequence
查看>>
集成百度推送
查看>>
在项目中加入其他样式
查看>>
在使用Kettle的集群排序中 Carte的设定——(基于Windows)
查看>>
【原】iOS中KVC和KVO的区别
查看>>
OMAPL138学习----DSPLINK DEMO解析之SCALE
查看>>
IoC的基本概念
查看>>
restframework CBV试图的4种方式
查看>>