【发布时间】:2012-10-03 12:49:29
【问题描述】:
给定一个列表[a_1 a_2 ... a_n](不一定是不同的)整数,确定是否存在成对的不同索引w,x,y,z,使得a_w + a_x = a_y + a_z。
我知道一种方法是使用 4 个级别的 for 循环,每个循环遍历一个索引。当我们得到相等的和时,检查所有索引是否成对不同。如果是,请返回true。如果我们已经用尽了所有可能性,请返回false。这有运行时间O(n^4)。
我们可以做得更好吗?
【问题讨论】:
-
你想要一个布尔答案,如是,有一个匹配,还是你想要一个匹配列表?
-
布尔答案...“确定是否存在成对不同的索引”