让我们使用下表。如何有效地检查表中是否存在值11?请注意,黄色中的数字可能并不总是连续的。遍历所有值是n^2,但效率不是很高。

发布于 2015-11-02 23:19:47
一种可能的解决方案是如下所示-将来自黄色行或黄色列的所有数字放入某个集合中,例如哈希集。让我们以这一行为例。之后,对列进行迭代,对于每个数字,x检查数字A - x是否在散列集中(在本例中,A是11)。这种方法将导致线性复杂性和线性额外内存。如果您知道对数字进行排序以获得相同的计算复杂性,则不需要哈希集。
https://stackoverflow.com/questions/33480882
复制相似问题