【发布时间】:2017-04-15 09:24:17
【问题描述】:
给定一组未排序的数组形式的整数,找到大于或等于 const 整数 x 的最小子集总和。
例如:- 我们的集合是 {4 5 8 10 10} 和 x=15
所以最接近x和>=x is {5 10}的最小子集总和
我只能想到一个简单的算法,它列出集合的所有子集并检查子集的总和是否为>=x 和最小值,但它是一个指数算法并列出所有子集需要 O(2^N)。我可以使用动态规划在多项式时间内求解吗?
【问题讨论】:
-
最小子集是指总和最接近
x的子集,还是任何子集>=x但元素数量最少? -
@biziclop 我的意思是最接近 x 的子集总和 >=x
-
如果你能解决这个问题,你也有解决子集和问题的办法。因此,这个问题是 NP 难的。
标签: arrays algorithm subset dynamic-programming subset-sum