有没有比明显的O(n ^ 3)更好的解决方案?我可以多次使用一个元素,因此对于数组{-1,0,2},有一个解决方案:(-1,-1,2)或(0,0,0)。
答案 0 :(得分:1)
经典的3SUM问题可以在O(n ^ 2)中解决。也可以用O(n ^ 2)
解决# assume arr is sorted and doesn't contain duplicates
out = []
s = set(arr)
for i in range(len(arr)):
for j in range(i, len(arr)):
a = - (arr[i] + arr[j])
if a >= arr[j] and a in s:
out.append((arr[i], arr[j], a))