使用max元素转换每个数组元素

时间:2012-05-09 18:52:33

标签: arrays algorithm

  

可能重复:
  array median transformation minimum steps

正如标题所说,我们需要用数组中的max元素替换它的所有元素。但是我们可以应用的唯一操作是:

  

给定大小为n的数组A,其中位数是指数[n / 2] +1时的元素   它以升序排序。我们可以应用的唯一操作   是任何连续的子阵列B [l ... r] l&gt; = 1并且r <= n(基于1的索引)   并用中位数替换所有元素。

我们需要确定最小的操作数,在这些操作中我们可以使用数组中的最大元素转换给定数组中的所有元素。

我无法找到解决这个问题的方法..我理解的唯一一点是,如果数组包含m次的最大元素,那么通过上述操作,我们可以最多只用它替换m个元素。并且当最大元素的数量变为&gt; = n / 2时,我们只需要一个操作。

  

例如,如果给出A为1 2 3,那么首先我们可以取sub   数组2 3的中位数为3,因此我们的数组现在变为1 3 3   取大小为3的子数组,我们得到答案为3 3 3。

0 个答案:

没有答案