【发布时间】:2013-02-19 12:17:39
【问题描述】:
Given 是一组元素。您必须将它们分成两组,以使单个组的元素总和之间的差异最小。
示例:
5
4 6 7 2 1
两组是:{4,6} 和 {7,2,1}。
我的方法:我只遇到过这个问题的蛮力解决方案,即使用位移技术生成集合的所有子集(2^n)。
我正在寻找更好的解决方案。
【问题讨论】:
-
@H2CO3 这不起作用我可以给你一个反例:
{1,2,2,2,7} -
H2CO3,请将您的答案发布为答案,而不是 cmets。
-
@IvayloStrandjev 请证明,我看不出那个特殊情况有什么问题。
-
@H2CO3 您将把 1 和 7 放在同一组中作为最小和最大元素,而最佳解决方案实际上是
{1,2,2,2}和{7}相差 1
标签: arrays algorithm data-structures set