两数之和-力扣

  • Post author:
  • Post category:其他




两数之和



接收一个整数和一个目标值, 在数组中找出 和为目标值的两个整数,并且返回他们的下标;



思路:

  • 通过 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 版权协议,转载请附上原文出处链接和本声明。