从阵列挑M个元素,使得最大的所有最小

问题描述 投票:-2回答:1

给定的框阵列A使得每个盒子包含它的一些球和ith盒具有球A[i]数。我们必须从任何盒挑M球,使得所有箱子的最大球应该是最低

例如A = [1,9,3,7,5,6,4,8,2]M = 6比我们会挑3 balls from 2nd box2 balls from 8th box1 ball from 4th box 而最终的阵列看起来像A = [1,6,3,6,5,6,4,6,2]

我应该使用哪种算法?

1 < A[i] < 1e9
1 < M < 1e18
algorithm binary-search
1个回答
0
投票

首先,没有标准的算法来使用你的问题,所以我会解释这应该可以解决的方式。

这个问题需要你找到修改数组,这样您将获得的“最大盒子”的最小可能经常。这里的关键是要找到最大的数组,并从它的每一次提取球,在同一时间,由1降低M此项动作要重复,而X!= 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]

如果您还有什么问题,随便问!我也可以为你提供一个完整的工作算法,但你应该尝试自己先创建它!

© www.soinside.com 2019 - 2024. All rights reserved.