标签:lib 就是 gap span ali tps 个数 怎么 多少
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
标签:lib 就是 gap span ali tps 个数 怎么 多少
原文地址:https://www.cnblogs.com/philipyang/p/10739507.html