# 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)