我正在寻找以下算法问题的最佳算法(或至少是一种好的方法)。 (它看起来非常接近multibin问题,但有一个明显的区别。)
说明:
我们有一个正数数组,它是一个环形缓冲区。我们需要将其切成固定数量的部分,以使所有部分之间的最小元素和最大元素之差最小。
示例1:
Array = [7, 16, 11, 3]
Number of parts = 2
最佳分区是:
[16] --- [11, 3, 7]
因为它在最小和(16)和最大和(11 + 3 + 7)之间的差异最小。
示例2:
Array = [7, 16, 3, 11]
Number of parts = 2
最佳分区是:
[16, 3] vs [11, 7]
因为最小和(16 + 3)和最大和(11 + 7)之间的差异最小。
注意: 经典的多仓问题意味着我们可以将对象随机放置在仓中。在这里,我们只能将来自连续子数组的所有对象放入垃圾箱。