我的思维是每次把最小的n-1个数+1直到都相等。会TLE:
public int minMoves(int[] nums) {
int count = 0;
while (true) {
int i;
for (i = 1; i < nums.length; i++) {
if (nums[i] != nums[i - 1]) {
break;
}
}
if (i == nums.length) {
return count;
} else {
Arrays.sort(nums);
for (int j = 0; j < nums.length - 1; j++) {
nums[j]++;
}
count++;
}
}
}
Math解法,列方程:
sum + m * (n - 1) = x * n
and actually,
x = minNum + m
and finally, we will get:
sum - minNum * n = m