Description
Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.
Example:
Input:
[1,2,3]
Output:
3
Explanation:
Only three moves are needed (remember each move increments two elements):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
数学题。 每次n-1个元素加1,相当于每次只有一个元素-1,相等就是都减到最小的元素。
func minMoves(nums []int) int {
size := len(nums)
smallest := nums[0]
total := 0
for _,val := range nums[1:] {
if smallest > val {
total += smallest
smallest = val
} else {
total += val
}
}
return total - (size -1) * smallest
}