当前位置: 首页 > news >正文

元宝 LeetCode 3139. 使数组中所有元素相等的最小开销 Java实现

LeetCode 3139 · Minimum Cost to Equalize Array — Java 解法

题意:只能对数组元素做 +1 操作——单点 +1 花费cost1,两点同时 +1 花费cost2。目标使所有元素相等,求最小总花费(对 1e9+7 取模)。

核心思路

  • 目标值 ≥ 原数组最大值(只能增不能减),枚举目标target ∈ [maxNum, 2*maxNum)即可找到最优解。

  • totalGap = target*n - sum(nums)(总需增加的次数),maxGap = target - minNum(单个元素最多需增加的次数)。

  • 双增操作最多配对pairs = min(totalGap/2, totalGap - maxGap),其余用单增补齐。

  • cost1*2 ≤ cost2n < 3,双增不划算,直接全用单增把数组升到maxNum

class Solution { public int minCostToEqualizeArray(int[] nums, int cost1, int cost2) { final int MOD = 1_000_000_007; final int n = nums.length; int minNum = nums[0], maxNum = nums[0]; long sum = 0; for (int v : nums) { if (v < minNum) minNum = v; if (v > maxNum) maxNum = v; sum += v; } // 只用单增操作就够了 if (cost1 * 2L <= cost2 || n < 3) { long totalGap = 1L * maxNum * n - sum; return (int) ((cost1 * (totalGap % MOD)) % MOD); } long ans = Long.MAX_VALUE; // 枚举目标值 for (int target = maxNum; target < 2 * maxNum; target++) { long totalGap = 1L * target * n - sum; long maxGap = target - minNum; // 最多能配对的双增操作次数 long pairs = Math.min(totalGap / 2, totalGap - maxGap); long cost = cost1 * (totalGap - 2 * pairs) + cost2 * pairs; if (cost < ans) ans = cost; } return (int) (ans % MOD); } }

复杂度:遍历O(maxNum)O(1e6),数组扫描O(n),空间O(1)

如需我补充关键结论推导或 Python 版本也可以说~

http://www.jsqmd.com/news/991209/

相关文章:

  • 鸿研服务器专业供应商评价与2026年中推荐 - 品牌推荐大师
  • 避开硬件I2C的坑:用GPIO模拟驱动TM1650点亮你的ARM开发板数码管
  • uni-app跨端开发优缺点深度解析:2026企业项目选型指南
  • 计算机视觉算法工程师技术成长完整指南:从零到精通的7步实战手册
  • Lapce远程SSH连接性能调优实战指南:解决文件夹无响应问题深度解析
  • PrometheusAlert分布式告警路由架构:构建企业级智能消息分发系统
  • 智能游戏助手:一键提升英雄联盟体验的完整指南
  • 手把手教你用Qwen3-VL微调实现精准图文指代定位
  • Overskride:终极 Linux 蓝牙客户端 - 10个高效管理蓝牙设备的技巧
  • PUBG雷达系统:5分钟搭建终极战场可视化工具
  • 大模型对就业结构的影响分析
  • gRPC 1.81.1 版本发布:多语言多方面改进与错误修复
  • 天津无缝钢管厂家实力排行:核心资质与交付能力对比 - 奔跑123
  • 2026最新黄金回收价格行情分析 - 润富黄金回收
  • 扫地机器人公司推首款美庭专用割草机,融合双导航技术售价 1299 美元!
  • 2026年6月10日黄金回收行情分析 - 润富黄金回收
  • Flutter同声传译APP+Flask封装SeamlessM4T语音翻译服务工程包
  • GAD-MoRE:零样本图异常检测的混合黎曼专家框架
  • 亚马逊 Echo 音箱推“睡眠工作室”:结合多平台内容,让孩子轻松入睡!
  • Windows 64位OMPL C++静态库集成包(含头文件、pkgconfig与CMake支持)
  • 黄金回收行业科普大全 - 润富黄金回收
  • Blender 3MF插件:从创意到3D打印的终极桥梁
  • 3个步骤解锁Mobaxterm中文版:一站式远程管理工具完全指南
  • 2026 威海厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 恒美智造与美国CEM微波化学反应器 微波萃取仪全方位品牌对比 - 专业仪器测评品牌推荐
  • 前端错误监控与异常边界:从全局捕获到组件级降级的工程实践
  • 恒美智造农药残留测试仪与岛津:农残检测仪性价比对比分析 - 专业仪器测评品牌推荐
  • AnyChat与第三方身份系统无缝对接:7步实现自定义用户认证终极指南 [特殊字符]
  • Java Swing超市库存管理教学演示包(含JDBC连接模板与图表统计)
  • 手把手教你用STM32F429+FreeRTOS搭建开源SIP电话(附代码与避坑指南)