【发布时间】:2012-10-17 13:40:32
【问题描述】:
您有一个大小为n 的正整数数组,您最多可以对其执行以下操作N 次:
- 选择一个子数组并将其元素值减少
k(k必须小于子数组的最小值)。 - 这样的操作花费子数组的大小乘以
k。 - 这些操作的总成本不得大于
M。 -
N和 M 可以非常大。
你能给我一个有效的算法来最小化这个数组中的最大元素吗?
【问题讨论】:
-
你试过什么?
-
你可以对数组进行排序吗?
-
不,您不能对数组进行排序或对其进行任何其他操作
-
是否允许使用额外的数组?您可以通过一组索引选择子数组,还是仅限于 [beginIndex, endIndex]?
-
是的,您可以使用任意数量的数组。不,您仅限于 [beginIndex, endIndex]。
标签: algorithm dynamic-programming greedy divide-and-conquer