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;
}
}
微信扫一扫
支付宝扫一扫