Arrays 把这一组分成两人一组
给定的是一组元素。您必须将它们分成两组,这样单个组的元素之和之间的差异最小 例如:Arrays 把这一组分成两人一组,arrays,algorithm,data-structures,set,Arrays,Algorithm,Data Structures,Set,给定的是一组元素。您必须将它们分成两组,这样单个组的元素之和之间的差异最小 例如: 5 4 6 7 2 1 两组是:{4,6}和{7,2,1} 我的方法:我只遇到了这个问题的强力解决方案,即使用位移位技术生成集合的所有子集(2^n) 我正在寻找更好的解决方案。我将给你两个提示,而不是给你解决方案: 计算所有元素的和,而不是解决原始问题。表示此S。解决如下所述的问题-找到给定数字的子集,其总和不超过S/2。其余的数字将构成另一个子集 我上面描述的问题非常简单,所有元素的成本都相等。同样,它可以通
5
4 6 7 2 1
两组是:{4,6}
和{7,2,1}
我的方法:我只遇到了这个问题的强力解决方案,即使用位移位技术生成集合的所有子集(2^n)
我正在寻找更好的解决方案。我将给你两个提示,而不是给你解决方案:
S
。解决如下所述的问题-找到给定数字的子集,其总和不超过S/2
。其余的数字将构成另一个子集可能重复的@H2CO3这将不起作用,我可以给你一个反例:
{1,2,2,7}
H2CO3,请将你的答案作为答案而不是评论发布。@IvayloStrandjev请证明,我不认为这个特殊情况有什么错。@H2CO3你将把1和7作为最小和最大元素放在同一组中,而最好的解决方案实际上是{1,2,2,2}
和{7}
的差值为1