gpt4 book ai didi

c++ - 在两个不同的数组中查找总和为 0 的对数

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

如果我有两个单独的排序数组,包含相同数量的条目,并且我需要在线性时间内找到总和 = 0 的对数(两个数字应该来自单独的数组),我该怎么做?

我可以在 O(n^2) 内轻松完成,但如何在线性时间内完成?

或者我应该合并两个数组然后继续吗?谢谢!

最佳答案

您不需要对数组进行排序。

将其中一个数组中的数字粘贴到哈希表中。然后遍历另一个数组。对于每个数字 n,查看 -n 是否在哈希表中。

(如果任一数组可以包含重复项,您需要小心处理它们。)

附言您可以利用数组已排序这一事实。只需从两端遍历它们一次,寻找具有相同值但符号相反的项目。我把弄清楚细节作为练习(提示:想想合并排序的合并步骤)。

关于c++ - 在两个不同的数组中查找总和为 0 的对数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26252836/

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