【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;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务