0%

Leetcode-p1

想法

最基本的暴力解

var twoSum = function(nums, target) {
    for(var i = 0;i < nums.length;i++){
        for(var j=i+1;j<nums.length;j++){
            if(nums[i] + nums[j] == target){
                console.log([i,j])
                return [i,j];
            }
        }
    }
};
twoSum([2,7,11,15], 9);

優化

看了看Solution,好像可以將它反向存一遍
在存的同時就可以看看它是不是已經有配對的數字

var twoSum = function(nums, target) {
    var map = {}
    for(var i = 0;i < nums.length;i++){
        // 目前這個數字配對到的另一個數字
        ans = target - nums[i];
        
        if(map[ans] !== undefined){
            return [i, map[ans]].sort()
        }
        map[nums[i]] = i
    }
};
console.log(twoSum([2,7,11,15], 9));