题目来源: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;
}
本文介绍了一种解决LeetCode题目“Minimum Moves to Equal Array Elements”的高效方法。通过将问题转化为求所有数与最小值的差值之和,实现了简洁的解决方案。文章提供了完整的Java代码实现。
471

被折叠的 条评论
为什么被折叠?



