给出一组A
的盒子,使得每个盒子中都包含一些球
ith
盒子中有A[i]
个球。我们必须从任何盒子中挑出M
个球,以使所有盒子中的最大球数最小。
例如A = [1,9,3,7,5,6,4,8,2]
和M = 6
比我们将选择的3 balls from 2nd box
,2 balls from 8th box
和1 ball from 4th box
最后的数组看起来像A = [1,6,3,6,5,6,4,6,2]
我应该使用哪种算法?
1 < A[i] < 1e9
1 < M < 1e18
答案 0 :(得分:0)
首先,没有标准算法可用于您的问题,因此 我将解释应解决的方法。
问题需要 您可以找到修改数组,以便获得最小的 “最大包装箱”的可能数量。这里的关键是找到 最大化阵列并每次从中提取一个球 同时,将M降低1。 M!= 0。使用您的示例,步骤将如下所示:
A = [1,9,3,7,5,6,4,8,2]
A = [1,8,3,7,5,6,4,8,2]
A = [1,7,3,7,5,6,4,8,2]
A = [1,7,3,7,5,6,4,7,2]
A = [1,6,3,7,5,6,4,7,2]
A = [1,6,3,6,5,6,4,7,2]
A = [1,6,3,6,5,6,4,6,2]
如果您还有其他疑问,请随时 问!我也可以为您提供完整的算法,但是您 应该先尝试自己创建它!