# NC61 两数之和
https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f (opens new window)
# 描述
给出一个整型数组 numbers 和一个目标值 target, 请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。 (注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)
示例1:
输入: [3,2,4],6
返回值:[2,3]
说明:因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 小于 下标3 ,所以返回[2,3]
示例2:
输入: [20,70,110,150],90
返回值: [1,2]
说明: 20+70=90
# 解答
/**
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
function twoSum( numbers , target ) {
const map = new Map();
// map 中的数的索引都比 当前数的索引 小
for (let i = 0, len = numbers.length; i < len; i++) {
const num1 = numbers[i];
const num2 = target - num1;
if (map.has(num2)) {
return [map.get(num2) + 1, i + 1]
} else {
map.set(num1, i);
}
}
}
module.exports = {
twoSum : twoSum
};
上一篇: 下一篇:
本章目录