給定一個長度為 n 的非空整數(shù)數(shù)組壳贪,找到讓數(shù)組所有元素相等的最小移動次數(shù)蕉世。每次移動可以使 n - 1 個元素增加 1钞澳。
輸入:
[1,2,3]
輸出:
3
解釋:
只需要3次移動(注意每次移動會增加兩個元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
解法:n-1個元素+1税朴,相當(dāng)于1個元素-1碍扔。找出最小的數(shù)瘩燥,所有數(shù)減去最小數(shù)的和即為答案。
本題也可以只用一次循環(huán)得到結(jié)果不同,有心人可以嘗試
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
}