从数组中选取 M 个元素,使得所有元素中的最大值为最小值
Pick M elements from array such that maximum of all is minimum
给定一个 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
首先,没有标准的算法可以用于你的问题,所以
我会解释解决这个问题的方法。
问题需要
你找到修改数组,这样你就可以获得最小值
可能经常 "max boxes"。这里的关键是找到
你的数组的最大值,每次都从中提取一个球,在
同时,将 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]
如果您还有什么问题,欢迎随时
问!我还可以为您提供完整的工作算法,但您
应该先尝试自己创建它!
给定一个 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
首先,没有标准的算法可以用于你的问题,所以 我会解释解决这个问题的方法。
问题需要 你找到修改数组,这样你就可以获得最小值 可能经常 "max boxes"。这里的关键是找到 你的数组的最大值,每次都从中提取一个球,在 同时,将 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]
如果您还有什么问题,欢迎随时 问!我还可以为您提供完整的工作算法,但您 应该先尝试自己创建它!