首页/新闻资讯/正文详情

最小操作次数使数组元素相等【力扣LeetCode 每日一题】

发布时间:2026/11/3 2:50:28 来源:云帆数科 栏目:资讯中心
最小操作次数使数组元素相等【力扣LeetCode  每日一题】
453. 最小操作次数使数组元素相等网页链接力扣LeetCode力扣LeetCode 每日一题完成每日打卡即可获得力扣积分。获得相应数量的积分能在【力扣商店】换取相应奖品助力每日有题做丰盈积分日益多题目描述给你一个长度为n的整数数组每次操作将会使n - 1个元素增加1。返回让数组所有元素相等的最小操作次数。输入描述一个长度为n的整数数组nums。输出描述返回让数组所有元素相等的最小操作次数。示例示例 1输入nums [1,2,3]输出3解释只需要3 33次操作注意每次操作会增加两个元素的值[1,2,3] [2,3,3] [3,4,3] [4,4,4]示例 2输入nums [1,1,1]输出0数据范围n nums.length1 ≤ nums.length ≤ 10 5 1 \le \text{nums.length} \le 10^51≤nums.length≤105− 10 9 ≤ nums [ i ] ≤ 10 9 -10^9 \le \text{nums}[i] \le 10^9−109≤nums[i]≤109答案保证符合32-bit整数解题思路本题是操作等价转化 相对差值求和问题。每次操作会把n - 1个元素同时加1直接模拟操作次数会很多也不方便。关键在于把“增加大多数元素”转化为“减少单个元素”。1. 操作等价转化每次操作选择n - 1个元素加1等价于所有元素都加1再让未被选中的那个元素减1。由于“所有元素同时加1”不会改变任意两个元素之间的相对差值也不会影响最终它们是否相等因此可以忽略这个整体加1的部分。于是原操作等价于每次选择数组中的一个元素将其减1。目标仍然是让所有元素相等。2. 最终相等值只能是最小值如果每次只能把某个元素减1那么元素只能变小不能变大。因此最终所有元素相等时目标值不能大于数组中的最小值否则原本的最小值无法通过“减1”达到更大的值。所以最终相等值必然就是数组的最小值m min ⁡ ( n u m s ) m \min(nums)mmin(nums)3. 计算最少操作次数对于任意元素nums[i]要把它降到最小值m需要的操作次数为n u m s [ i ] − m nums[i] - mnums[i]−m每个元素都必须至少降到m且降到m后不能再继续减小否则会小于目标值。因此总操作次数为∑ i 0 n − 1 ( n u m s [ i ] − m ) \sum_{i0}^{n-1} \bigl(nums[i] - m\bigr)i0∑n−1​(nums[i]−m)这正是代码中intm*min_element(a.begin(),a.end());intr0;for(intx:a){rx-m;}returnr;所计算的内容。4. 示例验证对于nums [1,2,3]最小值为1答案为( 1 − 1 ) ( 2 − 1 ) ( 3 − 1 ) 0 1 2 3 (1-1)(2-1)(3-1)0123(1−1)(2−1)(3−1)0123与示例输出一致。对于nums [1,1,1]最小值为1答案为0 0 0 0 00000000也与示例一致。5. 复杂度分析求最小值O ( n ) O(n)O(n)遍历数组累加差值O ( n ) O(n)O(n)总时间复杂度为O ( n ) O(n)O(n)只使用常数个额外变量空间复杂度为O ( 1 ) O(1)O(1)。总结每次让n - 1个元素加1等价于让一个元素减1。由于元素只能减小最终所有元素只能变成数组的最小值。因此最少操作次数就是所有元素与最小值之差的总和直接一次遍历累加即可。代码内容classSolution{public:intminMoves(vectorinta){intm*min_element(a.begin(),a.end());intr0;for(intx:a){rx-m;}returnr;}};

相关推荐

备份问题:覆盖保存前怎样留一份可回退副本?新手一步步做
备份问题:覆盖保存前怎样留一份可回退副本?新手一步步做

大家好,我是 SiKi老师。改完存档或导出配置一点保存,文件立刻变成新内容,原来那份却找不到了。很多工具直接 write_text 覆盖原路径,中间没有副本。新手需要的不是复杂版本库,而是覆盖前先留一份带时间戳、能手动拷回去… · 2026/11/3 2:50:28

下载 | Win11 23H2正式版最新ISO系统映像 (22631.7654、多合一版本)-修复系统问题
下载 | Win11 23H2正式版最新ISO系统映像 (22631.7654、多合一版本)-修复系统问题

⏩ 【资源A010】Win11 23H2正式版最新原版ISO系统映像🔶 Windows 11 23H2 正式版渠道的最新ISO系统映像,2026年10月更新版本已上传,资源链接内会定期跟进,更新ISO版本,建议收藏备用!Win11 23H2最新ISO映像下… · 2026/11/3 2:49:27

* LangGraph 基础入门:定位、核心概念与第一个可运行图
* LangGraph 基础入门:定位、核心概念与第一个可运行图

一、LangGraph总览 LangGraph 运行时底层基于自研的 Pregel 运行时,其核心思想借鉴了 Google Pregel 计算模型,用于组织和执行复杂的图计算流程。 1.0. LangGraph和LangChain的版本迭代及定位 LangChain 1.x 的定位发生了明显变化:旧式 Ch… · 2026/11/3 2:49:27

智慧街道系统:数据整合与AI驱动的基层治理新范式
智慧街道系统:数据整合与AI驱动的基层治理新范式

1. 奥尔特云智慧街道的基层治理新范式最近在基层治理领域,一个名为"奥尔特云智慧街道"的项目引起了广泛关注。这个项目最吸引我的地方在于它提出的"一张图指挥"理念——通过整合各类城市管理数据,将原本分散在十几个部门的街道治理信… · 2026/11/3 3:26:34

GMI Cloud与英伟达合作解析:Dynamo 1.0与OpenShell的技术突破
GMI Cloud与英伟达合作解析:Dynamo 1.0与OpenShell的技术突破

1. GMI Cloud与英伟达深度合作的技术背景当GMI Cloud出现在英伟达Dynamo 1.0和OpenShell的首发合作伙伴名单时,这个组合立即引起了技术圈的广泛关注。作为长期深耕云计算基础设施的服务商,GMI Cloud此次与AI计算巨头的联手,实际上揭示了当前A… · 2026/11/3 3:26:33

ZLibrary反爬机制解析与爬虫对抗策略
ZLibrary反爬机制解析与爬虫对抗策略

1. 为什么我们需要研究ZLibrary的反爬机制作为一名爬虫工程师,我最近花了三周时间系统研究了ZLibrary的反爬系统。这个全球知名的电子书平台的反爬策略堪称教科书级别——它不像某些网站简单粗暴地封IP,而是构建了一套精密的"行为特征识别动态防御&… · 2026/11/3 3:26:33

前端自动化测试利器Cypress实战指南
前端自动化测试利器Cypress实战指南

1. 为什么前端开发者需要掌握Cypress?三年前我刚加入现在的团队时,前端测试还停留在手动刷新页面肉眼检查的阶段。直到某个周五下午,我们上线了一个看似简单的表单优化,结果周末客服电话被打爆——提交按钮在Safari上完全失效。这… · 2026/11/3 3:26:33

产品数据通告撰写指南:从技术规范到用户信任
产品数据通告撰写指南:从技术规范到用户信任

1. 项目概述"浔川社团关于产品数据情况的官方通告"这个标题背后,反映的是一个组织对其产品数据状况进行正式披露的规范化流程。作为从业十余年的数据分析师,我见过太多组织在数据披露环节踩过的坑——要么过于技术化让普通用户看不懂&#xff… · 2026/11/3 3:26:33

Excel日期格式不生效?文本型日期批量转换与排错指南
Excel日期格式不生效?文本型日期批量转换与排错指南

前两天有人抱着一份从业务系统导出的台账来找我,说 Excel 里明明把单元格格式设成了日期,数据却纹丝不动,只有挨个双击再回车才会变成日期样子,几千行总不能一行行点下去。这个场景我这些年遇到过太多次,Excel 设置单元… · 2026/11/3 3:25:33

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码