审题:
需要我们在乱序数组中找到相加之和为target的两个数的下标,并返回
思路:
方法一:哈希表
我们创建哈希表,以数据值为键,以索引为值。
遍历数组nums,若可以在哈希表中找到键为target-nums[i]的数据,则说明当前索引与找到的索引即为所求,直接返回
若不能找到,则把当前的键值对存到哈希表中
解题:
疑问1:一个键只能有一个键值,如果答案的两个数据值(键)一样,会不会出键值覆盖的问题?
不会,因为第一个数据值存在哈希表中,第二个数据值不会再存进去,因为找到第二个答案就直接返回了
注意:
(1)题目要求返回vector数组我们不是必须创建一个数组再返回,数据量不大也可以用花括号返回
(2)map.find()函数负责寻找是否有指定键值,成功找到就返回对应迭代器,没找到就返回end迭代器
1. 两数之和 - 力扣(LeetCode)