LeetCode最小操作次数使数组元素相等Swift

给定一个长度为 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 {
    func minMoves(_ nums: [Int]) -> Int {
        //先找出数组最小值
        var min = nums.min()!
        //定义返回值
        var result = 0 
        //本质上等同于数组其它元素对最小元素的差值的和
        for num in nums {
            result += (num - min)
        }
        return  result
    }
}

 

 

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...