两数之和

66 阅读1分钟

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

思路

暴力解法我就不说了,我们来看一下map解法

  • 首先我们要明白两个重要的变量: 数组下标的值和数组的下标,很多人被这两个搞混了
  • target-nums[i]+num[i]=target这是一个非常重要的思路,核心解法在这
  • map具有记忆功能,每一次遍历都可以记录nums[i],i
  • 遍历判断是否含由target-nums[i]的key,如果当前key的值,就返回当前key的值和当前的下标(目标结果)
        /**
         * @param {number[]} nums
         * @param {number} target
         * @return {number[]}
         */
        var twoSum = function(nums, target) {
            let arr=[];
            let map=new Map();
            for(let i=0;i<nums.length;i++){
                if(map.has(target-nums[i])){
                    return [map.get(target-nums[i]),i];
                }
                map.set(nums[i],i);
            }
        };