LeetCode 1 兩數之和

Hillbox發表於2020-11-09

給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。

示例:

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

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/two-sum
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

var twoSum = function(nums, target) {
    let map = new Map();
    for (let i = 0; i < nums.length; i++) {
        //獲取目標和當前數的差,判斷map裡面有沒有這個差,沒有就把當前數存到map裡面
        let dif = target-nums[i] 
        //map.has(key)返回true或false,表示有沒有鍵為key的鍵值對
        if (map.has(dif)) { 
        	//map.get(key)返回key對應的value
        	return [map.get(dif), i] 
        }
        //map.set(key,value)新增鍵值對,在map中存入當前數已經它的下標
        map.set(nums[i], i); 
    }
};

相關文章