欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Leetcode】Two Sum题解

程序员文章站 2022-07-14 18:06:21
...

git仓库地址

git仓库

解法一:循环数组 + 数组includes

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
export function twoSum (nums:number[], target:number):number[] {
    const len:number = nums.length
    let i:number = 0
    let k:number;
    while (i < len) {
        let current:number = nums[i]
        let other:number = target - current
        if (nums.includes(other)) {
            k = nums.indexOf(other)
            if (k !== i)break
        }
        i++
    }
    return [i, k]
};

解法二:循环数组 + Map

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
export function twoSum1 (nums:number[], target:number):number[] {
    const m = new Map()
    const len:number = nums.length
    let i:number = 0
    for (; i < len; i++) {
        let v:number = nums[i]
        if (m.has(target-v)) return [m.get(target-v), i]
        m.set(v, i)
    }
};