NEWS DETAIL

JAVA练习270-接雨水

发布时间:2026/10/8 11:58:06 · 栏目:资讯中心

尧图网络原创建站知识分享正文
题目概览给定n个非负整数表示每个宽度为1的柱子的高度图计算按此排列的柱子下雨之后能接多少雨水。示例 1输入height [0,1,0,2,1,0,1,3,2,1,2,1]输出6解释上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图在这种情况下可以接 6 个单位的雨水蓝色部分表示雨水。示例 2输入height [4,2,0,3,2,5]输出9提示n height.length1 n 2 * 1040 height[i] 105来源42. 接雨水 - 力扣LeetCode解题分析方法一动态规划按照每个格子的角度看每个格子能达到的蓄水池深度取决于左右两边最高的格子令左边最高为 leftMax[ i ]右边最高为 rightMax[ i ]当个格子蓄水深度为 dp[i]可得dp[ i ] min{ leftMax[ i ], rightMax[ i ] } - height[ i ]先遍历获取左右两边最大高度然后计算每个格子蓄水深度即可。时间复杂度O(n)空间复杂度O(n)class Solution { public int trap(int[] height) { int result 0, len height.length; int[] leftMax new int[len1], rightMax new int[len1]; leftMax[0] height[0]; rightMax[len-1] height[len-1]; for (int i 1; i len; i) { leftMax[i] Math.max(height[i], leftMax[i-1]); rightMax[len - 1 - i] Math.max(height[len - 1 - i], rightMax[len - i]); } for (int i 1; i len; i) { result Math.min(leftMax[i], rightMax[i]) - height[i]; } return result; } }方法二动态规划 双指针由方法一得知左边最高是从左往右遍历右边最高是从右往左遍历因此我们可以尝试使用双指针节省空间令 i 在格子最左侧j 在格子最右侧如果 height[i] height[j]则 leftMax 一定也 rightMax因此可以得出当 height[i] height[j] 时dp[i] leftMax - height[i]当 height[i] height[j] 时dp[i] rightMax - height[i]。时间复杂度O(n)空间复杂度O(1)class Solution { public int trap(int[] height) { int result 0, i 0, j height.length - 1, leftMax 0, rightMax 0; while(i j) { leftMax Math.max(height[i], leftMax); rightMax Math.max(height[j], rightMax); if (height[i] height[j]) { result leftMax - height[i]; i; }else { result rightMax - height[j]; j--; } } return result; } }
✦

本文为尧图网络原创建站知识分享。想针对自身行业获取定制化建站方案?欢迎咨询,资深顾问免费为你出思路。

RELATED

相关 资讯推荐

MORE

更多 新鲜资讯

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析
2026/10/6 5:59:12

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析

1. 项目概述:从零开始,用JMeter搞定HTTP性能测试 刚接触性能测试的新手,或者是从功能测试转过来的朋友,一听到“压测”两个字,心里可能就有点发怵。工具那么多,概念那么杂,从哪儿下手呢&#xf…

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统
2026/10/6 5:40:23

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统

最近我用TypeScript写了一个运行在浏览器里的Web操作系统 Earendel(目前已知的距离地球最遥远的恒星)。开发它的初衷主要是为了Linux和操作系统课程的教学。市面上绝大多数Web OS项目,要么只是做了一个长得像Windows/macOS的网页UI拼盘&#…

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]
2026/10/9 2:33:51

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形🚀 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: http…

从零制作同人动画:技术路线、流程与实战避坑指南
2026/10/8 13:55:45

从零制作同人动画:技术路线、流程与实战避坑指南

1. 先搞清楚这个“粉丝动画”到底是什么,以及它能解决什么问题看到“五条悟VS宿傩/咒术回战粉丝动画”这个标题,很多人的第一反应可能是去找一个现成的视频。但如果你是一个想自己动手创作、或者想了解这类作品背后技术流程的创作者,这个标题…

闭源降价80%,开源却在涨价:AI定价的交叉路口
2026/10/8 14:00:22

闭源降价80%,开源却在涨价:AI定价的交叉路口

8月6日,两条价格曲线悄然交汇。 一条向下:OpenAI把GPT-5.6 Luna的输出价格从6美元砍到1.2美元/百万Token,降幅80%。另一条向上:同一天,DeepSeek公告全线涨价,措辞是"涨幅较大",非试探…

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买
2026/10/6 6:28:36

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买经常有工厂朋友拿着网上的"三防平板十大品牌排行榜"来问我:到底选哪个?说实话排行榜看看就行,真正选型得看你产线什么场景。今天挑五个在产线数字化里用得比较多的品牌—…

看完这篇,还想了解更多?

预约尧图网络顾问一对一沟通,针对你的行业与现状给出建站建议,全程免费。

免费咨询