algorithm - 排列数组中的数字以求和

标签 algorithm

<分区>

我给了一个数组。我想找到一个数组的所有排列,以便它总和为特定数字。
示例
数组 a =[2,3,5 , 1]
目标 = 8
`解决方案:[2,2,2,2] ,[5,3] ,[3,3,2] ,[5,2,1 ] 和所有可能的组合
请给我一个解决这个问题的方法,我面临的问题是如何处理元素的重复。目标是大量的 10^6。 我认为它与 This theory 相同

最佳答案

您正面临一个典型的 Subset Problem .无论你怎么说,这个问题的最坏情况复杂度都是指数级的。不过,您可能会发现很好的多项式时间近似值,它们对平均情况有奇效。

关于algorithm - 排列数组中的数字以求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773372/

相关文章:

python - 如何确定最佳顺序以最大化影响

algorithm - 解释逐步到达目标位置背后的数学原理

javascript - 将不同大小的圆圈打包成矩形 - d3.js

获得达到目标概率的算法

c - 这个算法是线性的吗?

C++,在大文件的一行上搜索单词的算法?

c++ - Google Kickstart 2018,测试用例中的圆形错误

查找多边形最小边数的算法

c - 确定 x/y 网格索引的算法

algorithm - 解释为什么插入(以及不同的情况)不会改变红黑树的黑色高度