zoukankan      html  css  js  c++  java
  • 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
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……
  • 相关阅读:
    Defcon 23最新开源工具NetRipper代码分析与利用
    如何确定恶意软件是否在自己的电脑中执行过?
    Meteor ToDo App实例
    Meteor在手机上运行
    Meteor部
    Meteor结构
    Meteor package.js
    Meteor Assets资源
    Meteor计时器
    C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
  • 原文地址:https://www.cnblogs.com/huangzs/p/15029561.html
Copyright © 2011-2022 走看看