题目来源:https://leetcode.cn/problems/minimum-moves-to-equal-array-elements/
大致题意:
给一个数组,每次可以将 n-1 个数组元素加 1,求最少操作多少次可以使数组所有元素相等
思路
将 n-1 个元素加 1,等价于将一个元素的值减 1
那么加 1 之后使所有值相等,等价于减 1 之后使所有值相等
于是本题等价于求所有数与最小值的差值和
直接遍历求所有数与最小值的差值和即可
public int minMoves(int[] nums) {
int min = Arrays.stream(nums).min().getAsInt();
int ans = 0;
for (int num : nums) {
ans += (num - min);
}
return ans;
}