兩數之和

兩數之和數組

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。 你能夠假設每種輸入只會對應一個答案。可是,你不能重複利用這個數組中一樣的元素。spa

給定 nums = [2, 7, 11, 15], target = 9code

由於 nums[0] + nums[1] = 2 + 7 = 9 因此返回 [0, 1]cdn

代碼以下

var twoSum = function(nums, target) {
    const comp = {};
    for(let i=0; i<nums.length; i++){
        if(comp[nums[i] ]>=0){
            return [ comp[nums[i] ] , i]
        }
        comp[target-nums[i]] = i
    }
};
複製代碼

關鍵在於:comp 這個對象對象

key: 存取 目標(target) - num[i] 的結果blog

value: 存取 能算出該結果的索引值索引

邏輯以下:leetcode

第一次計算:

comp[2] 爲 undefindget

9 - 2 = 7;it

也就是隻須要找到下個數值爲7的時候就是想要的。

第二次計算:

comp[7] 在comp對象中有:

說明 以前計算過 7 這個數字有匹配的。

直接返回 以前的索引:comp[7], 當前索引

相關文章
相關標籤/搜索