LeetCode(python3)——453. 最小移动次数使数组元素相等

题目描述

给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。

示例:

输入:
[1,2,3]

输出:
3

解释:
只需要3次移动(注意每次移动会增加两个元素的值):

[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

题目理解

每次移动n-1个元素,使其+1,相当于 把最大的元素–1,我们的目标是把所有的元素搞相等,也就是每次把最大的元素-1 直到所有元素都等于最小元素即可。

故总的运算次数等于 所有元素与最小元素 的差 的和

代码实现

    class Solution:
        def minMoves(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            return sum(nums) - len(nums) * min(nums)

猜你喜欢

转载自blog.csdn.net/Heitao5200/article/details/85245048
今日推荐