背景
最近想开始刷算法题,不定期更新。方便后续复习看~
题目
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
const map = new Map();
for(let i=0;i<nums.length;i++){
const res = target-nums[i]
if(map.has(res)){
return [map.get(res),i]
}else{
map.set(nums[i],i)
}
}
补充知识点
Map数据结构,本质上是键值对的集合(Hash 结构)。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map 结构的set方法,将当前遍历的每一项存到map结构中,然后又使用has方法看看有没有,接着使用get方法取了这个键