获取最小操作次数使数组元素相等

简介: 获取最小操作次数使数组元素相等(算法题)

获取最小操作次数使数组元素相等(算法题)

题目:给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。

给定一个数组 nums 代表了集合 S 发生错误后的结果。

请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。

示例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

思路

因为只需要找出让数组所有元素相等的最小操作次数,所以我们不需要考虑数组中各个元素的绝对大小,即不需要真正算出数组中所有元素相等时的元素值,只需要考虑数组中元素相对大小的变化即可。

因此,每次操作既可以理解为使 n−1 个元素增加 1,也可以理解使 1个元素减少 1。显然,后者更利于我们的计算。

于是,要计算让数组中所有元素相等的操作数,我们只需要计算将数组中所有元素都减少到数组中元素最小值所需的操作数。

具体解析可以参考力扣的453题。

class Solution {
public:
    int minMoves(vector<int>& nums) {
        int minNum = *min_element(nums.begin(),nums.end());
        int res = 0;
        for (int num : nums) {
            res += num - minNum;
        }
        return res;
    }
};
相关文章
|
缓存 Shell 开发工具
git 基本 使用和.gitignore文件不生效
git 基本 使用和.gitignore文件不生效
265 0
|
Web App开发 弹性计算 运维
阿里云acp认证是什么 阿里云acp认证的注意事项有哪些
就算是出来上班了,我们也还是要考很多各种各样的证书,才能在自己的工作圈里面更好的生存下去,你们知道阿里云acp认证是什么吗?认证大使的小编这就带你们去了解一下。
1215 0
阿里云acp认证是什么 阿里云acp认证的注意事项有哪些
|
API 区块链 Python
对接API火币/币安/OK/欧易交易所系统开发详细功能/案例设计/策略项目/源码功能
合约量化系统是一种自动化交易工具,它通过计算机程序实现交易决策和执行。
Proxifier是什么?如何配置使用?
【10月更文挑战第3天】Proxifier是什么?如何配置使用?
2869 1
|
SQL 数据采集 监控
系统层和应用层安全防护
系统层和应用层安全防护
1663 0
|
算法 测试技术 持续交付
四种灰度分布方案
【6月更文挑战第10天】产品迭代加速,灰度发布成为降低风险、优化用户体验的关键。它允许新老版本并存,逐步引入流量验证新版本稳定性。
|
负载均衡 安全 网络协议
什么是流量攻击? 流量攻击怎么处理?
什么是流量攻击? 流量攻击怎么处理?
|
关系型数据库 MySQL 数据库
【MySQL】:超详细MySQL完整安装和配置教程
【MySQL】:超详细MySQL完整安装和配置教程
43064 5
|
运维 Kubernetes 调度
编排的概念以及应用编排,服务编排和容器编排的区别
介绍编排的基本概念以及应用编排,服务编排和容器编排的概念和区别
4010 0
|
SQL 运维 Oracle
MySQL 8.0 OCP 1Z0-908认证考试题库1
Q1.Examine this command, which executes successfully:
628 0