Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何找到一个“和”;";可能只从给定数组中获取k个元素_Algorithm_Data Structures_Dynamic Programming_Knapsack Problem - Fatal编程技术网

Algorithm 如何找到一个“和”;";可能只从给定数组中获取k个元素

Algorithm 如何找到一个“和”;";可能只从给定数组中获取k个元素,algorithm,data-structures,dynamic-programming,knapsack-problem,Algorithm,Data Structures,Dynamic Programming,Knapsack Problem,最近,我遇到了以下问题: k-子集和 您将获得一个包含N个元素的正整数数组A[]。现在,您需要从给定数组a[]中形成一个包含K个元素的新数组,并且它的和应该等于S。另外,新形成的大小为K的数组应该是字典最小的 约束条件 给定数组的大小A[](数字的范围是多少?K的期望值是多少?@amit编辑了这个问题以反映约束谢谢。整数是唯一的吗?(这很重要,因为在您的情况下,总和与元素数相同,如果整数是唯一的正整数,在最坏的情况下,您会得到1+2+…+m-1+m=10^5,因为这是算术级数的总和,m的最大值是

最近,我遇到了以下问题:

k-子集和

您将获得一个包含N个元素的正整数数组A[]。现在,您需要从给定数组a[]中形成一个包含K个元素的新数组,并且它的和应该等于S。另外,新形成的大小为K的数组应该是字典最小的

约束条件


给定数组的大小A[](数字的范围是多少?K的期望值是多少?@amit编辑了这个问题以反映约束谢谢。整数是唯一的吗?(这很重要,因为在您的情况下,总和与元素数相同,如果整数是唯一的正整数,在最坏的情况下,您会得到
1+2+…+m-1+m=10^5
,因为这是算术级数的总和,
m
的最大值是
~2*sqrt(10^5)
,通过~x300@amit这个问题没有这样的限制。但我明白你的意思,如果它们是独一无二的,你有什么想法?采取你的方法,但对任何可能的提前终止都非常敏感,如果很明显这不会产生好的结果。我不确定总的来说有没有更好的解决方案。对于UNBunded子集sun(您想要的任何元素)复杂度为O(nW),其中W是所需的sun。