思路
traget为匹配条件
遍历nums,挨个匹配对应的元素
字典存出每个元素的值和下标,当在字典中匹配到的时候就return
代码
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
const map = new Map()
let res = []
nums.forEach((item,index) => {
let i = target - item
//看看map里面有没有想要的值
if(map.has(i)){
res = [map.get(i),index]
}
map.set(item,index)
})
return res
};
复杂度
时间:O(n),1个for循环 空间:O(n),只有一个一维数组