给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。
示例:
输入:
[1,2,3]
输出:
3
解释:
只需要3次移动(注意每次移动会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
N个数,移动可使N-1元素增加1,即可转换为让一个元素-1,只要将其中的所有元素转化为其中最小的元素就行了。最终的移动次数为:数组总和-数组中最小的元素*数组长度。
代码:
class Solution {
public int minMoves(int[] nums) {
int sum=0;
Arrays.sort(nums);
for (int i : nums) {
sum+=i;
}
return sum-nums[0]*(nums.length);
}
}