题目
类型:Array
解题思路
只需要找出让数组所有元素相等的最小操作次数,所以不需要考虑数组中各个元素的绝对大小,也就是不需要真正算出数组中所有元素相等时的元素值,只需要考虑数组中元素相对大小的变化即可。
因此,每次操作既可以理解为使 n−1 个元素增加 1,也可以理解使 1 个元素减少 1。后者更利于计算。
代码
class Solution {
public int minMoves(int[] nums) {
int minNum = Arrays.stream(nums).min().getAsInt();
int res = 0;
for (int num : nums) {
res += num - minNum;
}
return res;
}
}