【发布时间】:2016-08-31 07:02:48
【问题描述】:
给定一个包含 N 个元素的数组 A[] 和一个数字 x,检查 A[] 中的对,总和为 x ?
方法 1 = 排序,得到 O(n lg n)。
方法 2 = 使用给出 O(n) 的哈希表。
我对方法 2 有疑问,如果使用链接会怎样,那么对于每个元素,我们必须在列表中搜索其补码,在最坏的情况下,由于链接,这可能会产生 O(n^2)。
我认为它只有在给定整数范围时才会起作用,这样我们就可以在没有给出 O(n) 的链接的情况下拥有哈希表。我说的对吗?
【问题讨论】:
-
该数组有多大,您希望多久检查一次?换句话说,在这种特殊情况下, 性能有多重要?
-
我现在已经编辑了。我只是想知道,范围有用还是没有范围也能工作。
标签: arrays algorithm sorting hash hashtable