453. Minimum Moves to Equal Array Elements (Easy)
你有一个长度为 n
的数组,允许你每次操作将 n - 1
个元素的值 +1,求最少需要多少操作次数让数组中的所有元素相等。
思路
题目要求每次给 n - 1
个元素加 1,重复这个步骤直到数组所有元素相等。我们不应该给 max
加 1,所以这一步实际上是给最大值以外的所有元素加 1,其等价于最大值减去 1。
一旦在脑子中把这个思路捋顺了,方案就简单了。实际上我们要找到的是每一个元素减到最小值需要减去的次数。
算法已经浮出水面,我们先找到最小值,然后计算每个元素和最小值的差的和,这个和就是答案。
这是数学法,也称“感觉智商丢掉”法。
class Solution: |
基于这个思路,实际上我们把最小值减去了 n
次,那么找到最小值之后,我们对数组求和之后再减去数组长度乘以最小值,得到的结果就是答案。
class Solution: |
相关文章