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,那么我们找到最小的,然后逐个看每个需要减去多少次1
public class Solution { public int minMoves(int[] nums) { int min = Integer.MAX_VALUE; int step =0; for(int i=0;i<nums.length;i++){ if(nums[i]<min){ min = nums[i]; } } for(int i=0;i<nums.length;i++){ step += nums[i] - min; } return step; } }