首先澄清一下,这不是一个功课,我在最近的一次采访中被问到这个问题并画了一个空白。 所以我有以下数组,
{1, 6, 3, 2, 9}
更改是将任何元素递增1并将任何其他元素递减1的步骤。因此,1更改可能类似,
{2, 5, 3, 2, 9}
我允许进行无限制的更改,直到我获得最大数量的相等元素,因此给定的数组可以变为
{3, 3, 3, 3, 7} or {3, 4, 4, 4, 4}
除此之外,更多的变化不会使更多的元素变得平等。因此,问题是,进行无限制的更改,可以使最大数量的元素相等。
因此,上述数组的答案是4
。 (注意有两种情况,无论哪种情况,答案都是4)
另一个例子是数组,
{1, 4, 1}
在这种情况下,我们可以进行更改以进入
{2, 2, 2}
因此,本案的答案是3
。
有人可以帮助我开始一种方法。我还在画一个空白。
答案 0 :(得分:2)
这似乎是一个数学问题,而不是与计算机相关的问题。由于每个“更改”增加一个元素并减少另一个元素,因此数组中所有值的总和是不变的。
这意味着,当且仅当所有元素的总和可以均分int temp
时,才能使数组的所有n
元素相同。否则,其中一个元素必须采用另一个值来获得n
相等的元素。
顺便说一下,您的答案n-1
和{3, 3, 3, 3, 7}
(总和19)不是您之前{3, 4, 4, 4, 4}
状态(21的总和)的解决方案。