Skip to content

两数之和

一、暴力枚举 二、哈希表 O(n)

js
/**
 * 寻找数组中两个元素之和等于给定数字的索引。
 *
 * @param {number[]} arr - 输入的数组
 * @param {number} num - 目标和
 * @returns {number[]} - 包含两个元素索引的数组,如果找不到匹配则返回 [-1, -1]
 */
function towSum(arr, num) {
    let numMap = new Map();

    for (let i = 0; i < arr.length; i++) {
        let other = num - arr[i];
        if (numMap.has(other)) {
            return [numMap.get(other), i];
        } else {
            numMap.set(arr[i], i);
        }
    }

    return [-1, -1];
}