leetcode453 最小移动次数使数组相等(python3)

leetcode453 最小移动次数使数组相等

给定一个长度为 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

上代码:

class Solution:
    def minMoves(self, nums):

        return sum(nums)-min(nums)*len(nums)

一句话,简单明了

猜你喜欢

转载自blog.csdn.net/weixin_43944749/article/details/85110311