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

元宝 快速思考 LeetCode 3229. 使数组等于目标数组所需的最少操作次数 Java实现

LeetCode 3229 — 使数组等于目标数组所需的最少操作次数

📌 题目理解

每次操作:选任意连续子数组,全体 +1 或 -1,求让numstarget的最少步数。


💡 核心转化

差值数组diff[i] = target[i] - nums[i]

问题等价于:用最少次「对子数组整体 ±1」把diff全消为 0。

关键直觉 —— 画成柱状图

diff画出来,正数 = 山峰,负数 = 山谷。一次"对子数组 +1"相当于把一段连续的柱子上沿齐平往下削 1(同理 -1 往上填谷)。

  • 同号连续段内部的操作可以共享(像阶梯一样一层层削)

  • 正负交界处必须断开,不能共享

这意味着:总操作数 = 只看上升沿的爬升总和


🔑 最优雅解法:首尾补零 + 差分

构造虚拟数组a = [0, diff[0], diff[1], ..., diff[n-1], 0]

答案就是a[i+1] - a[i]中所有正数之和

ans = \sum_{i=0}^{n} \max(0,\ a[i+1]-a[i])
步骤含义
a[0] = 0起始基准面
a[i+1] - a[i] > 0第 i 步有一个向上的台阶,需要额外那么多层操作
a[n] → 0最后要把尾部差值归零

✅ Java 实现

class Solution { public long minimumOperations(int[] nums, int[] target) { int n = nums.length; long ans = 0; // prev 模拟 a[i],初始 a[0] = 0 long prev = 0; for (int i = 0; i < n; i++) { long cur = (long) target[i] - (long) nums[i]; // diff[i] = a[i+1] long delta = cur - prev; // a[i+1] - a[i] if (delta > 0) { ans += delta; } prev = cur; } // 尾部:虚拟的 a[n+1] = 0,delta = 0 - prev long delta = -prev; if (delta > 0) { ans += delta; } return ans; } }

⚠️ 如果你的版本签名是List<Integer>,把nums.get(i)/target.get(i)替换即可,注意转long防溢出。


🔍 举个例子走一遍

nums = [1,3,2], target = [2,1,4]

idiff[i] = target-numscurprev→curΔ=cur-prev累计 ans
初始prev=00
0110→1+11
1-2-21→-2-31
222-2→2+45
尾部02→0-25

答案 =5✓ 匹配示例


⏱️ 复杂度

时间O(n) 单次扫描
空间O(1) 只存变量

这个差分补零的技巧其实是此类"子数组统一增减"题目的通用套路(同类还有 LC 1526),记住一句话就够:操作次数 = 高度剖面所有上行台阶的爬升量之和

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

相关文章:

  • 从燃料消耗看优化:在STK中对比霍曼转移与双椭圆转移的仿真差异
  • 别再傻傻分不清了!HBM、CDM、IEC 61000-4-2,硬件工程师必懂的三种静电防护测试实战指南
  • 巴彦淖尔市2026年最新黄金回收白银回收铂金回收彩金回收五家靠谱门店及联系方式地址电话推荐TOP排行榜 - 盛世金银回收
  • AI Agent技术落地为何必须拒绝虚构推演
  • Kimi K2.6 快速思考 LeetCode 3235. 判断矩形的两个角落是否可达 Java实现
  • Linux实时内核下的毫秒级中断响应钩子框架
  • 从‘啸叫’到稳定:手把手教你用RC滞后补偿搞定运放自激振荡(附Multisim仿真)
  • 工业平行宇宙:10 未来:人机共舞、星际工厂
  • 贵阳市2026年最新黄金回收白银回收铂金回收彩金回收五家靠谱门店TOP排行榜及联系方式地址电话推荐 - 大熊猫898989
  • CH32V003F4P6开发板开箱实测:从零到点灯,手把手搞定MounRiver Studio配置(Win10保姆级教程)
  • Cursor AI解锁终极指南:简单4步告别“试用次数已用完“
  • LLM爆了!从Token到下个词,深度揭秘它如何“说话”!
  • 构建AI认知基质:记忆调度、知识锚点与协同代理架构
  • 桂林市2026年最新黄金回收白银回收铂金回收彩金回收五家靠谱门店TOP排行榜及联系方式地址电话推荐 - 大熊猫898989
  • IR-UWB vs FMCW雷达:在智能家居与养老监护中,哪种技术方案更靠谱?
  • 巴中市2026年最新黄金回收白银回收铂金回收彩金回收五家靠谱门店及联系方式地址电话推荐TOP排行榜 - 盛世金银回收
  • 工业平行宇宙:09 安全与伦理
  • 告别漫长等待!手把手教你用Ansys Speos 2022R2的GPU加速,把光学仿真时间砍半
  • DuoTouch技术:双触点实现高效触摸交互的创新方案
  • 120.多模态扩散模型落地|从图像生成到分子、三维建模技术拓展
  • AI智能体上下文腐化与推理失配的工程化解决方案
  • Kimi K2.6 快速 LeetCode 3235. 判断矩形的两个角落是否可达 C++实现
  • 白城市2026年最新黄金回收白银回收铂金回收彩金回收五家靠谱门店及联系方式地址电话推荐TOP排行榜 - 盛世金银回收
  • 用YouTube Data API重建个人推荐过滤器
  • 构建下一代实时通信服务器:MonaServer如何解决多协议统一难题?
  • 从欧标CCS到国标GB/T:一份给国内工程师的Vector充电测试硬件选型指南
  • 微信聊天记录备份指南:3步保护你的数字记忆
  • Agentic AI工作流五大设计模式实战指南
  • LabVIEW与STC89C52温湿度监测报警
  • Pandas多维聚合生产实践:银行风控中的5大避坑指南