【发布时间】:2015-11-15 06:47:11
【问题描述】:
给定一个由 n 个正整数 a1、a2、... a3 组成的集合 A 和另一个正整数 M,我将找到 A 的一个数的子集,其和最接近 M。换句话说,我' m 试图找到 A 的子集 A' 使得绝对值 |M - ???? Σ a∈A′|被最小化,其中 [ Σ a∈A' a ] 是 A' 的个数的总和。我只需要返回解子集A'的元素之和,而不报告实际的子集A'。
例如,如果我们有 A 为 {1, 4, 7, 12} 并且 M = 15。那么,解子集是 A′ = {4, 12},因此算法只需要返回 4 + 12 = 16 作为答案。
该问题的动态规划算法应该在 最坏情况下的 O(nK) 时间,其中 K 是所有 A 数的总和。
【问题讨论】:
标签: dynamic-programming knapsack-problem subset-sum