1.两数之和(c++ 数组)
发布日期:2021-05-06 15:35:48 浏览次数:13 分类:技术文章

本文共 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;//返回答案 }};

 

上一篇:2 两数相加(c++ 链表 )
下一篇:哔哩哔哩发布作者的全部视频采集

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月23日 09时22分36秒