两数之和

Nov 17, 2022

自己实现的

自己动手实现的

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
function twoSum(nums, target) {
    const count = {}
    for (let i = 0; i < nums.length; i++) {
        const num = nums[i];
        if (count[num] === void 0) {
            count[num] = {
                sub: target - num,
                idx: i
            };
        }
        if (count[count[num].sub] !== void 0 && count[count[num].sub].idx !== i) {
            return [count[count[num].sub].idx, i]
        }
    }
    return []
}
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
function twoSum(nums, target) {
    const count = {}
    for (let i = 0; i < nums.length; i++) {
        const num = nums[i];
        if (count[num] === void 0) {
            count[num] = {
                sub: target - num,
                idx: i
            };
        }
        if (count[count[num].sub] !== void 0 && count[count[num].sub].idx !== i) {
            return [count[count[num].sub].idx, i]
        }
    }
    return []
}

别人实现的

leetcode上看见别人的实现,发现自己还得努力

var twoSum = function(nums, target) {
    const map = new Map();
    for(let i = 0; i < nums.length; i++){
        const item = nums[i];
        if(map.has(item)){
            return [map.get(item), i]
        }
        map.set(target - item, i);
    }
};
var twoSum = function(nums, target) {
    const map = new Map();
    for(let i = 0; i < nums.length; i++){
        const item = nums[i];
        if(map.has(item)){
            return [map.get(item), i]
        }
        map.set(target - item, i);
    }
};
back