我有一个 N 个正整数的集合,每个正整数都以一个(相对较小的)常数 C 为界。我想找到这些数字的一个子集,其中最小的总和大于(或等于)一个值 K。
涉及的数字不是很大(<100),但即使在最坏的情况下我也需要良好的性能。我想也许我可以让 Pisinger 的动态规划算法适应这项任务;它在 O(NC) 时间内运行,我碰巧满足有界正数的要求。
[编辑]:数字未排序,可能有重复。
但是,我对算法的理解不够好,无法自己做到这一点。事实上,我什至不确定它所基于的假设是否仍然成立......
- 是否可以根据我的需要调整该算法?
- 或者我可以使用另一种同样有效的线性算法吗?
- 谁能提供伪代码或详细解释?
谢谢。
链接到我正在调查的子集和代码: Pisinger 的子集和算法的快速解决方案
(抱歉,如果措辞/格式/等不好。我还是 StackOverflow 的新手......)