赞
踩
题目描述
给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。
一开始一直 迷,不知道怎么模拟
后来在 官解 评论区,一位大哥的一句话给我点醒了
每次操作将会使 n - 1 个元素增加 1,相当于只对 1 个元素 减 1
所以,只用以 min
为 “基准”,然后把 nums 中所有元素 都 “减”到 min
,然后统计需要“减“ 的次数,即可
class Solution {
public int minMoves(int[] nums) {
int sum = 0;
int min = nums[0];
for (int num : nums) {
sum += num;
min = Math.min(num, min);
}
// 每次操作将会使 n - 1 个元素增加 1,相当于只对 1 个元素 减 1
return sum - nums.length * min;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。