首页 > 解决方案 > 在数组中搜索一定数量的数字

问题描述

我有一个数组,例如 [10, 5, 6, 3],还有一个变量 b = 13,我想计算数组中每个元素的总和,如果总和等于 = b(13) 返回 true,我首先知道最后一个元素总和 = 13。如何检查哪对元素的总和?

标签: javascript

解决方案


您可以为丢失的部分制作一个哈希表,如果找到则返回。

function check(array, sum) {
    var hash = {},
        i = 0,
        v;
        
    while (i < array.length) {
        v = array[i];
        if (hash[v]) return true;
        hash[sum - v] = true;
        ++i;
    }
    return false;
}

console.log(check([10, 5, 6, 3], 13));
console.log(check([10, 5, 6, 3], 17));


推荐阅读