有没有一种方法可以比O(n ^ 3)时间更好地解决4Sum问题?

时间:2018-09-08 17:25:14

标签: algorithm sorting optimization time-complexity big-o

问题:给定一个由n个整数组成的数组和一个整数目标,是否存在以数字表示的元素a,b,c和d使得a + b + c + d =目标?在数组中找到所有给出目标总和的唯一四元组。

因此,有一个显而易见的n ^ 3解决方案:排序,两个嵌套的for循环然后进行检查。

但是有办法做得更好吗?请注意,这不是决策问题,只需查看解决方案是否存在,而是返回 all 个唯一的四元组。

1 个答案:

答案 0 :(得分:1)

否,不可能以比O(n^3)时间复杂度更有效的方式找到所有唯一的四元组。但是,如果您只想计算四倍的数量而不是列出,则可以在O(n^2)时间复杂度中实现。