gpt4 book ai didi

javascript - 数字数组和数字 k,返回数组中的任意两个数字是否相加为 k

转载 作者:行者123 更新时间:2023-12-03 07:05:42 24 4
gpt4 key购买 nike

findSums(arr, k) {
let hashMap
hashMap = {};
for (let value of arr) {
if (hashMap[value]) {
return true;
} else {
hashMap[k - value] = true
};
}
return false;
}
我有点困惑这个功能是如何工作的。 hashMap[k - value]该位究竟是如何推导出 arr 中的 2 个整数之和的?与 k?

最佳答案

您应该从 else 开始阅读它。块,然后是 if堵塞。
什么 hashMap[k - value] = true做的是跟踪我们需要到达 k 的数字。使用当前项目 value的阵列。
例如,如果 k11和当前项目 value7 ,然后 hashMap会变成{ "4": true } ,这意味着我们正在寻找一个 4 (因为 7 + 4 == 11 )。如果下value3 ,然后 hashMap变成 { "4": true, "8": true } ,这意味着我们正在寻找 48这一点, ...
现在,我们回到 if块,该块只是检查当前 value是我们正在寻找的数字之一(上例中的 48)。如果是,我们返回 true立即,因为我们已经找到了两个加起来为 k 的数字。所以没有必要继续搜索。请注意,对于循环的第一次迭代,此 if无论如何都无法输入块,因为 hashMap还是空的{} .

关于javascript - 数字数组和数字 k,返回数组中的任意两个数字是否相加为 k,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64653503/

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