【LeetCode每日一题】453. 最小操作次数使数组元素相等【简单】思维
给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。
示例 1:
输入:nums = [1,2,3] 输出:3 解释: 只需要3次操作(注意每次操作会增加两个元素的值): [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] 示例 2:
输入:nums = [1,1,1] 输出:0
提示:
n == nums.length 1 <= nums.length <= 105 -109 <= nums[i] <= 109 答案保证符合 32-bit 整数
题解: 题目乍一看感觉有点懵,在想是不是简单题都做不出来了,后来想到对于n-1个元素加1可以看作对1个数减1,这样看上去题目就比较容易想到了。
class Solution {
public:
int minMoves(vector<int>& nums) {
int n = nums.size();
//找最小值
int Min = INT_MAX;
for(auto e: nums){
Min = min(Min, e);
}
int sum = 0;
//将和最小值的差值加起来即为答案
for(auto e: nums){
if(e > Min){
sum += e - Min;
}
}
return sum;
}
};