两数之和
接收一个整数和一个目标值, 在数组中找出 和为目标值的两个整数,并且返回他们的下标;
思路:
- 通过 Map 差值来计算出
- 存储循环的 值为 key 下标为 value
- 循环 整数数组 判断 目标值 减去 当前数组的值 是否存在 map中存在的话直接返回当前的 map value 和 当前的循环下标
- 不存在的话 存储当前 循环的 值为 key 下标为 vulue 到 map 中
代码实现:
function twoSum(nums: number[], target: number): number[] {
let map = new Map();
for (let i = 0, len = nums.length; i < len; i++) {
if (map.has(target - nums[i])) return [map.get(target - nums[i]), i];
else map.set(nums[i], i);
}
return [];
}
const nums: number[] = [2, 1, 232, 23, 4, 7, 232, 2323, 343, 3, 12, 1, 3, 32];
console.log(twoSum(nums, 9));
版权声明:本文为weixin_45192421原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。