gpt4 book ai didi

javascript - 确定一个数组中的任何数字添加到另一个数组中的任何数字是否等于目标数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:52 25 4
gpt4 key购买 nike

我无法解决以下问题。我得到了 2 个数组和一个目标编号。

如果目标数字可以通过将第一个数组中的任何数字与第二个数组中的任何数字相加得到,而 false,我该如何编写返回 true 的函数> 不然呢?

以下示例有效,但我想要一个更优化的解决方案。

var a = [1, 2, 3], b = [10, 20, 30, 40];

function sumOfTwo(a, b, v) {
b = b.sort();

for (var i = a.length - 1; i > 0; i--) {
if (b.indexOf(v - a[i]) >= 0) {
return true;
}
}
return false
}

console.log(sumOfTwo(a, b, 42)); // true
console.log(sumOfTwo(a, b, 44)); // false

谢谢。

最佳答案

您可以使用哈希表和两个循环。

function sumOfTwo(left, right, sum) {
var hash = Object.create(null),
i;

for (i = 0; i < left.length; i++) {
hash[sum - left[i]] = true;
}
for (i = 0; i < right.length; i++) {
if (hash[right[i]]) {
return true;
}
}
return false;
}

var a = [1, 2, 3],
b = [10, 20, 30, 40],
v = 42;

console.log(sumOfTwo(a, b, 42));

关于javascript - 确定一个数组中的任何数字添加到另一个数组中的任何数字是否等于目标数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42602001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com