一尘不染

将列表分成平衡块

algorithm

我需要一种算法来将值列表拆分成这样的块,每个块中的值之和等于( 大约
)(我想这是背包问题的某种变体)

因此,例如[1、2、1、4、10、3、8] => [[8、2],[10],[1、3、1、4]]

长度相等的块是首选,但这不是一个约束。

Python是首选语言,但也欢迎其他语言

编辑: 定义块数


阅读 197

收藏
2020-07-28

共1个答案

一尘不染

贪婪:
1.订购可用物品降序排列。
2.创建N个空组
。3.开始一次将一项添加到总和最小的组中。

我认为在大多数现实生活中,这应该足够了。

2020-07-28