所以我有一个数组A
,其元素为A[1], A[2] .. A[N]
我希望找到一个子序列(不一定是连续的),具有恰好K
个元素,其总和正好是Sum
。
我最好的猜测是O(N K ),如果你运行K嵌套循环,并测试每种可能性。
这可以更快地完成吗?
A
的所有元素都是整数,大于0。
答案 0 :(得分:0)
我认为这在政治时期无法解决。 @Anderson是对的,它确实类似于背包问题。
尽管您可以通过branch and bound算法加快速度,但它的效果将取决于您的实际值。 (例如:如果超过总和,则不要进一步测试)
修改强> 基于这个主题,@ amit链接,O(n ^ k)确实是最佳答案,对于任何固定的k值,它是n中的polinomial。