【发布时间】:2011-08-10 02:52:22
【问题描述】:
给定一个包含n 正整数的集合A,我怎样才能找到可以使用所有中的元素获得的最小整数>= 0放。每个元素都可以添加或减去到总数中。
几个例子可以说明这一点。
A = [ 2, 1, 3]
Result = 0 (2 + 1 - 3)
A = [1, 2, 0]
Result = 1 (-1 + 2 + 0)
A = [1, 2, 1, 7, 6]
Result = 1 (1 + 2 - 1 - 7 + 6)
【问题讨论】:
-
通过取最小的数字,然后减去所有其他数字来找到最小总和。你的意思是“最接近零”吗?
-
我假设您的意思是“最小的和 >= 0”?
-
这相当于通常的partition problem,已知是NP-complete。
-
@RB @ChrisWue 是的,最小和 >= 0
-
@Sven Marnach:弱 NP-完全。它有一个伪多项式的动态规划解决方案 - O(poly(问题中数字的总和))。
标签: algorithm subset-sum partition-problem