博客
关于我
1.两数之和(c++ 数组)
阅读量:286 次
发布时间:2019-03-03

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

1 问题

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素.

2 解决

使用查找表来解决。因为题中说明:你可以假设每种输入只会对应一个答案。

设置一个 map 容器nums_Map,nums_Map存储的数据类型为<int,int>,第一个元素是nums数组中的值,第二个元素是该值在数组中的下标。如上图示例中 nums_Map.insert( make_pair(2,1) );即向容器中插入第一个元素2,2在数组中的下标为1。

首先遍历数组 nums。每次遍历时查找  target-nums[i]的值是否在nums_Map中,如果在,那么就找到了答案,返回两者的下标。如果未找到,则向nums_Map插入该元素与下标 i。

class Solution {public:    vector
twoSum(vector
& nums, int target) { map
numsMap;//存储nums中元素及下标的容器 vector
ret_V;//返回的答案 map
::iterator it; int size = nums.size(); for(int i=0;i
second);//第一元素下标 ret_V.push_back(i);//该元素下标 break;//跳出 } } return ret_V;//返回答案 }};

 

转载地址:http://tiql.baihongyu.com/

你可能感兴趣的文章
炫酷文字消失动画网站404页面源码
查看>>
EMLOG模板山河网站主题分享
查看>>
2020年,51Talk求一个盈利的机会
查看>>
2019数字音乐市场年度回顾,QQ音乐全面领先
查看>>
迅雷新财报背后:下载一哥到艰难求生
查看>>
腾讯终于要杀入电商直播了
查看>>
花1亿扶持优质红人,如涵推动网红经济出圈之路有何深意?
查看>>
开门红财报下,贝壳找房的春天依然有点冷
查看>>
虾米逝去:透视在线音乐的下一场战争
查看>>
抢滩抖音、B站,快手港股IPO进程加速
查看>>
智能穿戴的结局依然充满悬念
查看>>
Linux中的虚拟内存机制和内存映射
查看>>
Android系统启动系列5 SystemServer进程下
查看>>
Android四大组件系列9 ContentProvider原理
查看>>
理解PendingIntent
查看>>
Android SurfaceFlinger4 提交Buffer
查看>>
深入理解 ClientLifecycleManager 机制
查看>>
android基础知识回顾--ContentProvider简单用法
查看>>
压缩解压
查看>>
js try{}catch(){}finally{}语句
查看>>