【发布时间】:2017-04-26 11:54:03
【问题描述】:
所以,更正式地说,我得到 N 个数字,需要将它们分成 K 个组,这些组中没有一个是空的。每组范围的总和必须最小。例如:
N = 4,K = 2,输入为 {5,3,1,1}。
一种可能的解决方案是 {5,3},{1,1}。范围之和为 2 ((5-3)+(1-1))。
另一种查看方式是 {1,1,3}{5},它也是 2((3-1)+(单个数字的范围是 0))。
范围始终是组中最大数字与组中最小数字之间的差。
当我搜索互联网时,很明显我需要使用动态编程,但我想出的只是 K=2 的解决方案。
有人可以帮忙吗?
【问题讨论】:
-
组需要包含连续的数字吗?而@Koekje他需要将它分成k组,并且有N个数字,k