---
# System prepended metadata

title: 453. Minimum Moves to Equal Array Elements

---

# 453. Minimum Moves to Equal Array Elements

## 題目概要

給定一個大小為 n 的整數陣列 nums，返回使所有陣列元素相等所需的最小移動次數。

每一步可以將陣列中的 n - 1 個元素加1。

```
Example 1:

Input: nums = [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]

Example 2:

Input: nums = [1,1,1]
Output: 0
```

## 解題技巧

- 有兩種思維能讓陣列所有元素值相等，一種是找到最大值把其他值加到和最大值一樣大，另一種則是找到最小值。
- 如果多列幾個範例出來計算會發現一個規律，最小移動次數會是陣列所有元素與最小值的差總和。

## 程式碼


```javascript=
/**
 * @param {number[]} nums
 * @return {number}
 */
var minMoves = function(nums) {
    let result = 0;
    let min = Math.min.apply(null, nums);

    for(let i of nums) {
        result += (i - min);
    }
    
    return result;
};
```

![](https://i.imgur.com/AYWyD8i.png)
