453 Minimum Moves to Equal Array Elements

Posted philipyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了453 Minimum Moves to Equal Array Elements相关的知识,希望对你有一定的参考价值。

https://leetcode.com/problems/minimum-moves-to-equal-array-elements/?tab=Description

<Math>

给你一个array,每次操作可以使一个数不变,同时array中其余的数各+1。最少需要操作多少次可以让array里的值全都相等。

 

两种想法,殊途同归

想法一:想让所有的元素都相等,那肯定要考虑怎么样才能让最小的和最大的相等,于是最大的原地不动,其他的元素+1,一直做max-min次后,最大的和最小的相等。这时,最小的依然是最小的,最大的也变成最小的,以前第二大的变成现在最大的了。所以答案其实就是把最小项到各个数字的gap加起来。相同的项毫无影响,他兄弟怎么做,他就怎么做即可。比如说答案123那个,改成1123,也一样,1怎么做,其他1也怎么做就是了

 

想法二:其实我们并不在乎array里的数是多少,只在乎数与数之间的相对距离。于是我们想到,一个数不变,其他数都加1. 等价于这个数 -1 ,其他数都不变。每次可以使一个数-1, 需要减一多少次,才能让array相等呢?自然是每个数都跟min比一下即可。 求个和,然后减去n * min即可

以上是关于453 Minimum Moves to Equal Array Elements的主要内容,如果未能解决你的问题,请参考以下文章

453. Minimum Moves to Equal Array Elements

453 Minimum Moves to Equal Array Elements

leetcoode刷题 453. Minimum Moves to Equal Array Elements

453. Minimum Moves to Equal Array Elements

LeetCode 453. Minimum Moves to Equal Array Elements

453. Minimum Moves to Equal Array Elements