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

力扣-42.接雨水

题目:

给定 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.length
1 <= n <= 2 * 10^4
0 <= height[i] <= 10^5

题解

将整个列表按照最大值 maxV 分成两部分,左边以及右边的所有的值都不可能超过最大值 maxV。

对于所有的左边值来说,可以将最大值 maxV 作为所有蓄水池的右边界。

而蓄水池的左边界则是从左到右遍历到当前值是的最大值。

最终的水平面将取决于值较小的边界,则为左边界。

def trap(height):maxI = np.argmax(height).flatten()[0]tr = i = 0for j in range(1, maxI):if height[i] > height[j]:tr += height[i] - height[j]else:i = ji = len(height) - 1for j in range(len(height) - 2, maxI, -1):if height[i] > height[j]:tr += height[i] - height[j]else:i = jreturn tr


 

http://www.lryc.cn/news/276172.html

相关文章:

  • LeetCode-移动零(283)
  • 文件系统与日志分析
  • labview 与三菱FX 小型PLC通信(OPC)
  • 掌握Linux网络配置:价格亲民,操作简便!
  • 郑州大学算法设计与分析实验2
  • 【CMake】1. VSCode 开发环境安装与运行
  • 使用vue3+<script setup>+element-plus中el-table前端切片完成分页效果
  • vue 中 computed 和 watch 的区别
  • gephi——graphviz插件设置
  • wireshark抓包分析HTTP协议,HTTP协议执行流程,
  • Linux第13步_安装“vim编辑器”及应用介绍
  • Yapi安装配置(CentOs)
  • HCIA-Datacom题库(自己整理分类的)_08_FTP协议【8道题】
  • 【开源GPT项目 - 在问】让知识无界,智能触手可及
  • 【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于Real-ESRGAN的TPU超分模型部署
  • Vue中的组件通信方式及应用场景
  • RA8900CE汽车用c总线接口实时时钟模块
  • 屏幕截图--Snagit
  • PHP运行环境之宝塔Web站点部署
  • 使用高版本JDK编译低版本代码
  • Zuul相关问题及到案(2024)
  • 【CSS】讲一讲BFC、IFC、GFC、FFC
  • 阶段十-分布式-任务调度
  • Godot4.2——爬虫小游戏简单制作
  • 对象的前世今生与和事佬(static)的故事
  • 报错curl: (6) Could not resolve host: raw.githubusercontent...的解决办法
  • 【基础篇】十二、引用计数法 可达性分析算法
  • C语言算法(二分查找、文件读写)
  • 流媒体学习之路(WebRTC)——Pacer与GCC(5)
  • 2023版本QT学习记录 -11- 多线程的使用(QT的方式)