LeetCode答题记录453. 最小移动次数使数组元素相等
2018-08-08 本文已影响0人
渣新iOS程序员sun某
给定一个长度为 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
}