LeetCode 第42题 接雨水

发布时间:2026/7/29 3:08:33

LeetCode 第42题 接雨水
class Solution { public int trap(int[] height) { int ans 0; // 保存总共承接雨水总量 int left 0, right height.length - 1; // 左右双指针 int leftMax 0, rightMax 0; // left左侧最高柱子、right右侧最高柱子 while(left right) { // 更新左边最大高度 leftMax Math.max(leftMax, height[left]); // 更新右边最大高度 rightMax Math.max(rightMax, height[right]); if(height[left] height[right]) { // 左边柱子更低当前位置存水量 左侧最高高度 - 当前柱子高度 ans leftMax - height[left]; left; } else { // 右边柱子更低当前位置存水量 右侧最高高度 - 当前柱子高度 ans rightMax - height[right]; right--; } } return ans; } }一、核心算法思想双指针 O (n)、空间 O (1)基础理论单个位置蓄水量 min (当前位置左侧最高柱子当前位置右侧最高柱子) − 当前柱子高度定义左指针left起始于数组头部右指针right起始于数组尾部leftMax记录左指针遍历路径上的最高柱子rightMax记录右指针遍历路径上的最高柱子短板判定规则如果height[left] height[right]左侧为短板。此时leftMax就是左右两侧较小的最大值直接计算当前 left 位置雨水左指针右移如果height[left] height[right]右侧为短板。此时rightMax就是左右两侧较小的最大值直接计算当前 right 位置雨水右指针左移累加每个位置蓄水量指针相遇循环结束返回雨水总和。记忆口诀哪边柱子矮先算哪边蓄水量移动哪边指针。二、实例运行表格推演测试样例height [0,1,0,2,1,0,1,3,2,1,2,1]初始状态left0right11leftMax0rightMax0ans0leftrightheight[left]height[right]leftMaxrightMax大小对比当前格子雨水总水量 ans0110101left 矮0-0001111111相等走右侧逻辑1-1001101212left 矮1-1002100212left 矮1-0113102222相等走右侧逻辑2-201392122right 矮2-112382222相等走右侧逻辑2-202372323left 矮2-202471323left 矮2-113570323left 矮2-025671323left 矮2-116循环终止条件left7right7不满足leftright最终总雨水ans6。三、易错点与知识点总结1. 容易混淆题目区分LeetCode 11【盛最多水的容器】 VS LeetCode 42【接雨水】11 题求两根柱子之间形成的矩形面积整体区间蓄水42 题逐根竖柱单独计算垂直方向雨水每个位置受左右最高柱子限制两道题模型完全不同不要混用思路。2. 核心概念误区leftMax和rightMax不是全局最大值只是指针行进路径上记录的最大值。依靠「短板效应」不需要预先开辟数组存储每个位置左右最大值实现 O (1) 空间复杂度。3. 蓄水量不会为负数leftMax永远大于等于height[left]rightMax永远大于等于height[right]因此计算出的雨水数值≥0无需额外判断。

相关新闻

普通电脑训练小型LLM:从环境搭建到实战调优完整指南

普通电脑训练小型LLM:从环境搭建到实战调优完整指南

2026/7/29 3:08:33

还记得第一次听说“大语言模型”这个词时,我正对着屏幕上一行行代码发呆。那感觉就像听人谈论如何建造火箭,而我还在琢磨怎么把自行车链条装回去。但后来我发现,其实用普通电脑训练一个小型LLM,远没有想象中那么遥不可及——它更像…

基于Mind+与掌控板的AI语音垃圾分类助手:从硬件选型到图形化编程实战

基于Mind+与掌控板的AI语音垃圾分类助手:从硬件选型到图形化编程实战

2026/7/29 3:08:33

1. 项目缘起:当掌控板遇上AI,让垃圾分类“开口说话”最近在折腾Mind和掌控板,总想搞点不一样的东西。之前用掌控板做过温湿度监测、物联网控制,甚至一些简单的图像识别,但总觉得缺了点“智能感”。直到看到社区里有人用…

融合古风美学的DIY紫外线消毒机:从Arduino控制到安全设计全解析

融合古风美学的DIY紫外线消毒机:从Arduino控制到安全设计全解析

2026/7/29 3:08:33

1. 项目概述:当“聊斋”美学遇上实用主义最近在捣鼓一个特别有意思的小玩意儿,我管它叫“倩女幽魂既视感的口罩消毒机”。这名字听起来是不是有点混搭?一边是充满东方古典奇幻色彩的《倩女幽魂》,一边是现代生活中再实用不过的口罩…

服装档口数字化转型:微信抖音双平台运营实战指南

服装档口数字化转型:微信抖音双平台运营实战指南

2026/7/29 4:08:35

1. 服装档口转型的行业背景与痛点去年冬天我去广州十三行调研时,发现一个有趣现象:上午十点的批发市场里,半数档口老板都在同时操作三台手机——一台接微信订单,一台回复抖音咨询,还有一台在拍新款短视频。这种"三…

C++通讯录管理系统:从零实现面向对象编程与STL容器应用

C++通讯录管理系统:从零实现面向对象编程与STL容器应用

2026/7/29 4:08:35

1. 项目概述:为什么选择通讯录管理系统作为C入门项目?如果你刚开始学习C,面对指针、类、STL这些概念感觉一头雾水,或者写了几行“Hello World”后不知道下一步该做什么,那么亲手实现一个“通讯录管理系统”绝对是一个绝…

判断力 + 可测试性:AI 研发浪潮下的工程师终极壁垒

判断力 + 可测试性:AI 研发浪潮下的工程师终极壁垒

2026/7/29 4:08:35

如今,GitHub Copilot、Cursor 等 AI 编码工具已经成为开发者日常工具。写代码的门槛被彻底拉低:只要输入需求描述、敲几次回车,AI 就能秒出几十、上百行可运行代码。 代码的生产速度,被 AI 无限拉快;但代码的质量风险、…

基于Arduino与红外传感的智能感应洗手液机DIY全攻略

基于Arduino与红外传感的智能感应洗手液机DIY全攻略

2026/7/29 4:08:35

1. 从“小P孩”到“家庭守护者”:一个感应洗手液机的诞生记你有没有经历过这样的场景:家里的小朋友,每次洗手都像是一场“战斗”?要么是够不着高高的洗手液瓶,要么是挤得满手都是,最后还得你跟在后面收拾“…

C++ switch语句详解:从语法到实践,掌握多路分支控制

C++ switch语句详解:从语法到实践,掌握多路分支控制

2026/7/29 4:08:35

1. 项目概述:为什么switch是C流程控制的关键一环在C编程的入门路上,当你熟练掌握了if-else来应对“是”或“否”的二元选择后,很快就会遇到一种更复杂的场景:程序需要根据一个变量的不同取值,执行完全不同的代码分支。…

Frida Hook技术实战:动态绕过Android应用签名校验

Frida Hook技术实战:动态绕过Android应用签名校验

2026/7/29 3:58:35

1. 项目概述:当签名校验遇上动态对抗在移动应用安全领域,签名校验是开发者保护应用完整性、防止应用被篡改和二次打包的一道基础防线。简单来说,它就像给App安装包盖上一个独一无二的“数字公章”,运行时系统或应用自身会反复核验…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/28 16:04:36

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

2026/7/29 0:08:23

打工人总是跑不掉要写会议纪要。 我在一家互联网公司,一周至少八场会:产品评审、数据复盘、项目同步、客户沟通,每场一小时起步。 以前的标准流程是开会拼命记→会后凭记忆补→整理成文档发群,结果经常记不全、记错、记串。 大概年…

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

2026/7/29 0:08:23

重庆化龙桥靠着嘉陵江,老小区多,最近几年城市更新做的勤,不少住户都反映过小区夜景亮了是好事,可有的灯太晃眼,半夜拉着窗帘都透光,睡不好觉。还有物业算账,这灯开一整晚,公摊电费蹭…

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

2026/7/29 0:08:23

更多请点击: https://codechina.net 第一章:目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案 目标模糊:学得越勤,离真实能力越远 当学习目标停留在“学会AI”或“搞懂大模型”这类宽泛表述…