453. Minimum Moves to Equal Array Elements

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.ui

Example:code

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]

Solution

數學題。 每次n-1個元素加1,至關於每次只有一個元素-1,相等就是都減到最小的元素。three

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
}
相關文章
相關標籤/搜索