我在互联网上发现了以下问题,并想知道我将如何解决它:
问题:没有重新排列的整数分区
输入:非负数的排列S {s 1,... ..,s n }和整数k.
输出:将分区S分成k个或更少的范围,以最小化所有k个或更少范围的总和的最大值,而无需重新排序任何数字.*
请帮忙,看起来像有趣的问题......我实际上花了很多时间,但没有看到任何解决方案..
我需要一个算法将一个值列表拆分成这样的块,每个块中的值总和是(近似)等于(它假设背包问题的一些变化)
所以,例如[1,2,1,4,10,3,8] => [[8,2],[10],[1,3,1,4]]
相同长度的块是首选,但它不是约束.
Python是首选语言,但也欢迎其他语言
编辑:定义了块数
python language-agnostic algorithm optimization combinatorics