【发布时间】:2021-09-15 11:22:02
【问题描述】:
给你一个由 N 个整数组成的数组。现在您可以对其执行一种操作,即选择任何索引 i 并将 ai 增加 1,即 ai=ai+1。通过此操作,您希望最大化中位数。此外,您最多可以应用此操作 K 次。奇数数组的中位数是数组非降序排序后的中间元素。
输入: 3 2
1 3 5
输出: 5
输入: 5 5
1 2 1 1 1
输出: 3
我很难理解这个问题,我的想法是,他们要求最大中位数,如果我们只是排序并选择中间元素并用 k 增加它。那么它将是最大中位数。我在互联网上看到了一些解决方案,但我无法理解。有人可以帮我在这里做什么吗?
【问题讨论】:
-
从概念上讲,这很容易:要最大化中值,增加中值元素。但是,递增后的元素可能不再是中位数,因此在这样一个简单的实现中,您需要在中位数元素每次递增后对数组进行重新排序。
-
您能解释一下您发布的输入/输出值的含义吗?
标签: c++ search max binary-search median