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

LeetCode Hot 100:42. 接雨水

题目

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

解析

和题目 盛水最多的容器 类似,

LeetCode Hot 100:11. 盛最多水的容器-CSDN博客

只是这里将每一个柱子视为一个宽度为1的容器,能接水的体积取决于左边最大高度和右边最大高度的较小值,再减去底部当前柱子的高度。设置左右指针left和right,指向左右两侧当前待计算接水量的柱子,以及记录左指针以左、右指针以右的最大高度值的pre_max和suf_max两个指针。

作者:灵茶山艾府

来源:

盛最多水的容器 接雨水【基础算法精讲 02】_哔哩哔哩_bilibili

答案

注意while循环可以不加等号,因为在「谁小移动谁」的规则下,相遇的位置一定是最高的柱子,这个柱子是无法接水的。

作者:灵茶山艾府

来源:42. 接雨水 - 力扣(LeetCode)

/*** @param {number[]} height* @return {number}*/
var trap = function(height) {const len = height.length;let left = 0, right = len - 1, ans = 0;    //设置左右指针和初始答案//初始化前缀最大高度(左指针以左),后缀最大高度(右指针以右)let pre_max = 0, suf_max = 0;while(left < right) {pre_max = Math.max(pre_max, height[left]);    //更新前缀最大高度suf_max = Math.max(suf_max, height[right]);    //更新后缀最大高度    if(pre_max < suf_max) {    //判断储水高度,取决于前缀、后缀最大高度中的短边ans += pre_max - height[left];    //实际可储水高度需要减去底部柱子的高度left++;} else {ans += suf_max - height[right];right--;}}return ans;
};

复杂度分析

时间复杂度:O(n),其中 n 为 height 的长度。

空间复杂度:O(1),仅用到若干额外变量。

http://www.dtcms.com/a/307444.html

相关文章:

  • MCU中的RTC(Real-Time Clock,实时时钟)是什么?
  • 聊聊接口测试依赖第三方数据测试策略
  • mysql主从搭建(docker)
  • Verilog与SytemVerilog差别
  • 【爬虫实战】使用Python和JS逆向基于webpack的游戏平台
  • vue 中 props 直接解构的话会数据丢失响应式
  • 在 CentOS 7 安装中文字体
  • 法国声学智慧 ,音响品牌SK (SINGKING AUDIO) 重构专业音频边界
  • vue+ts 基础面试题 (二)
  • 正向运动学(Forward Kinematics,简称FK)和逆向运动学(Inverse Kinematics,简称IK)
  • Java项目:基于SSM框架实现的校园活动资讯网管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 分类-鸢尾花分类
  • 佳维视工业显示器在除尘与过滤设备中的应用
  • 7800系列三端固定式线性稳压器的典型应用电路
  • MakeInstaller: 一款麒麟操作系统安装包制作工具
  • 进阶向:YOLOv11模型轻量化
  • TGD第九篇:三维应用——视频边缘检测
  • 爱普生002墨水与004墨水基本参数及支持机型
  • 【10】大恒相机SDK C++开发 ——对相机采集的原图像数据IFrameData裁剪ROI 实时显示在pictureBox中,3种方法实现(效率不同)
  • 零基础构建MCP服务器:TypeScript/Python双语言实战指南
  • 某讯视频风控参数逆向分析
  • 《C#与.NET Core跨平台开发的融合架构与实践逻辑》
  • 基于STM32的智能温控通风系统设计
  • Web 开发 08
  • 前端核心技术Node.js(四)——express框架
  • 【JavaEE】(7) 网络原理 TCP/IP 协议
  • 前端下载的EXCEL文件无法打开的解决办法
  • 9.Linux 调优与性能检测
  • 前端框架Vue3(四)——组件通信及其他API
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第一天(HTML5)