leetcode453.最小移动次数使数组元素相等

118 阅读1分钟

453.最小移动次数使数组元素相等

给定一个长度为 n非空整数数组,找到让数组所有元素相等的最小移动次数。

每次移动使 n - 1 个元素增加 1。

输入:[1,2,3]      输出:3
解释:只需要3次移动(注意每次移动会增加两个元素的值):
[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]
class Solution:
    def minMoves(self, nums: List[int]) -> int:
        return sum(nums) - len(nums) * min(nums)
"""
将除了一个元素之外的全部元素+1,等价于将该元素-1,因为我们只对元素的相对大小感兴趣。
显然只需要将所有的数都减到最小的数即可。
因此累加数组中各元素,与最小值*元素个数作差即可。
"""