gpt4 book ai didi

arrays - 判断数组中是否存在两个元素之和正好为X?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:53 26 4
gpt4 key购买 nike

给定一个包含 N 个元素的数组 A[] 和一个数字 x,检查 A[] 中的对与总和为 x 吗?

方法 1 = 给出 O(n lg n) 的排序。

方法 2 = 使用给出 O(n) 的哈希表。

我对方法 2 有疑问,如果使用链接,那么对于每个元素,我们必须在列表中搜索其补码,由于链接,在最坏的情况下可能会产生 O(n^2)。

我认为它只有在给定整数范围时才会起作用,这样我们就可以拥有哈希表而无需链式给出 O(n)。我说得对吗?

最佳答案

你可以试试下面的方法->

hash all elements in A[], like (key, value) = (A[i],true) 

for all elements in A[]:
if hash(x-A[i])=true: it exists

关于arrays - 判断数组中是否存在两个元素之和正好为X?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242829/

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