问题:给定一个由n个整数组成的数组和一个整数目标,是否存在以数字表示的元素a,b,c和d使得a + b + c + d =目标?在数组中找到所有给出目标总和的唯一四元组。
因此,有一个显而易见的n ^ 3解决方案:排序,两个嵌套的for循环然后进行检查。
但是有办法做得更好吗?请注意,这不是决策问题,只需查看解决方案是否存在,而是返回 all 个唯一的四元组。
答案 0 :(得分:1)
否,不可能以比O(n^3)
时间复杂度更有效的方式找到所有唯一的四元组。但是,如果您只想计算四倍的数量而不是列出,则可以在O(n^2)
时间复杂度中实现。