我目前正在解决以下问题:
给定一个由 M 个正数组成的数组,我需要得到 N 个具有给定长度的连续数字块。例如,当我有数组时:
6 9 3 2 8 1 6 9 7
当我需要找到一个长度为 3 的块时,解决方案是 [3,2,8],其最小总和为 13。当我需要找到两个块时,算法应该给出 [3,2,8] 和[1,6,9] 因为这些块中所有元素的总和是最小的 (29)。给定序列的长度总是严格大于块长度的N倍(所以总是有解)。
我认为这个问题可以通过使用 DP 来解决,但我目前不知道如何解决。我正在努力寻找子问题之间的反复关系。有人可以帮我看看吗?
提前致谢!