algorithm - 有没有办法在比 O(n^3) 时间更好的时间内解决 4Sum 问题?

标签 algorithm sorting optimization time-complexity big-o

问题:给定一个包含 n 个整数的数组和一个整数 target,在 nums 中是否存在元素 a、b、c 和 d 使得 a + b + c + d = target?在给出目标总和的数组中找到所有唯一的四元组。

所以有一个明显的 n^3 解决方案,带有排序,两个嵌套的 for 循环,然后检查。

但是有没有办法做得更好呢?请注意,这不是决策问题,只是查看是否存在解决方案,而是返回所有 个独特的四元组。

最佳答案

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

关于algorithm - 有没有办法在比 O(n^3) 时间更好的时间内解决 4Sum 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52237689/

相关文章:

java - 使用 Collections 方法对类中的特定内容进行排序

c++同时插入和排序 "empty"数组

python - Numpy 规范化代码出奇地慢

c++ - 数组访问中的二进制搜索是否比使用哈希表更快?

algorithm - 保留预订的概念

algorithm - 产生url安全数据的压缩算法

C# 给定所需的顺序需要一个节省空间的列表重新排序或排序

c++ - 内存对齐 - Sparc(Sun) cc 编译器、Intel(Linux) g++ 编译器、Intel(Windows) MVSC 编译器

java - int[] 数组(从低到高排序)

c++ - 防止编译器不断折叠表达式的技巧