美文网首页
LeetCode答题记录453. 最小移动次数使数组元素相等

LeetCode答题记录453. 最小移动次数使数组元素相等

作者: 渣新iOS程序员sun某 | 来源:发表于2018-08-08 19:37 被阅读0次

    给定一个长度为 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。找出最小的数,所有数减去最小数的和即为答案。
    本题也可以只用一次循环得到结果,有心人可以尝试

    func minMoves(_ nums: [Int]) -> Int {
        var minNum: Int = nums.first!
        for value in nums {
            if value < minNum {
                minNum = value
            }
        }
        var moveCount = 0
        for value in nums {
            moveCount += value - minNum
        }
        return moveCount
    }

    相关文章

      网友评论

          本文标题:LeetCode答题记录453. 最小移动次数使数组元素相等

          本文链接:https://www.haomeiwen.com/subject/efaxbftx.html