力扣-42.接雨水

news2025/1/17 13:52:50

题目:

给定 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 = 0
    for j in range(1, maxI):
        if height[i] > height[j]:
            tr += height[i] - height[j]
        else:
            i = j
    i = len(height) - 1
    for j in range(len(height) - 2, maxI, -1):
        if height[i] > height[j]:
            tr += height[i] - height[j]
        else:
            i = j
    return tr


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1358083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GraphQL 工具推荐:打造高效的开发环境

GraphQL 工具 本文章&#xff0c;会列举一些好用的 GraphQL 工具&#xff0c;他们可以大大提升你在开发中使用 GraphQL 的效率哦&#xff01; Prisma 你可以这么理解&#xff0c;Prisma 是一个 ORM 的库&#xff0c;让你使用 GraphQL 查询时&#xff0c;可以使用对象的形式去…

图像分割-Grabcut法

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的C#版本请访问&#xff1a;图像分割-Grabcut法(C#)-CSDN博客 GrabCut是一种基于图像分割的技术&#xff0c;它可以用于将图像…

vue中key的用法

加key是提升vue渲染效率&#xff0c;减少DOM操作。 vue列表元素的更新机制&#xff1a; 当列表元素没有设置key的时候&#xff0c;vue判断是否操作这个DOM元素&#xff0c;是根据新旧两次数据的元素顺序进行对比&#xff0c;看一下元素内容是否发生变化。发生变化vue就操作这个…

关于Python里xlwings库对Excel表格的操作(二十八)

这篇小笔记主要记录如何【如何使用“Chart类”和“Api类"为新图表设置标题文本内容、字体、字号、粗细、正斜、颜色】。 前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何…

大数据Doris(四十六):物化视图查询改写和适用场景

文章目录 物化视图查询改写和适用场景 一、查询改写

移动神器RAX3000M路由器不刷固件变身家庭云之六(高级应用):设置https

本系列文章&#xff1a; 移动神器RAX3000M路由器变身家庭云之一&#xff1a;开通SSH&#xff0c;安装新软件包 移动神器RAX3000M路由器变身家庭云之二&#xff1a;安装vsftpd 移动神器RAX3000M路由器变身家庭云之三&#xff1a;外网访问家庭云 移动神器RAX3000M路由器变身家庭云…

c# 学习笔记 - 枚举

文章目录 1. 枚举1.1 枚举结构梳理1.2 枚举完整代码1.3 枚举知识点补充 2. 迭代两种命名空间接口3. yield语句 1. 枚举 1.1 枚举结构梳理 结构图   上图内容可能依旧不通俗易懂&#xff0c;这里使用最简明的话语告诉大家实现方式. foreach语句就是集合的遍历操作&#xff0c…

彻底弄懂MySQL事务隔离级别

并发事务中存在以下 3 个问题。 1 脏读 指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会保存到数据库,也可能会回滚,不保存到数据库。当这个数据发生了回滚,就意味着读到的这个数据不存在,这就是脏读! 2 不可重复读 在同一个事务中,同一个查询在不同的…

Spring Cloud Alibaba 介绍与版本映射关系

目录 前言 一、Spring Cloud Alibaba 是什么&#xff1f; 二、Spring Cloud Alibaba 版本依赖 前言 Spring Cloud 本身并不是一个拿来即可用的框架&#xff0c;它是一套微服务规范&#xff0c;这套规范共有两代实现。 (子项目)&#xff1a; ● 第一代实现&#xff1a; Spr…

yolov5旋转目标检测-遥感图像检测-无人机旋转目标检测(附代码和原理)

目前&#xff0c;无人机技术的快速发展带来了遥感图像处理领域的革命性改变。然而&#xff0c;由于无人机在飞行时可能会出现旋转的情况&#xff0c;因此对于旋转目标的检测也成为了一个重要的问题。针对这个问题&#xff0c;yolov5可以提供一种高效的解决方案。 以下是介绍的分…

SSCI及SCI撰写|查找文献doi的八大方法

一、前言 (一)文献DOI概念介绍 DOI&#xff08;Digital Object Identifier&#xff09;是一种用于标识数字对象的持久性标识符系统。在学术出版领域&#xff0c;DOI通常用于标识和定位学术文献&#xff0c;包括期刊文章、会议论文、报告等。以下是 DOI 的一些重要特点和介绍&a…

法二(命令行):YOLOv5打包.exe

0 准备工作 yolov5环境配置完毕安装pyinstaller&#xff0c;命令为 pip install pyinstallerps: 为了避免可能的错误&#xff0c;所有操作请在英文路径下进行。 1 修改detect_qt5.py或者相关文件 如果是使用我的检测界面的&#xff0c;应该是修改detect_qt5.py这个文件&#x…

HTTP和TCP代理原理及实现,主要是理解

Web 代理是一种存在于网络中间的实体&#xff0c;提供各式各样的功能。现代网络系统中&#xff0c;Web 代理无处不在。我之前有关 HTTP 的博文中&#xff0c;多次提到了代理对 HTTP 请求及响应的影响。今天这篇文章&#xff0c;我打算谈谈 HTTP 代理本身的一些原理&#xff0c;…

springboot中引入AOP切面编程

在Spring Boot 3.0中引入AOP的过程如下所示&#xff1a; 1、首先&#xff0c;确保已经添加了相关依赖。可以通过Maven或Gradle来管理项目的依赖。对于使用Maven构建的项目&#xff0c;需要将以下依赖添加到pom.xml文件中 <dependency><groupId>org.springframewo…

Optional 优雅判空

文章目录 可以解决的问题API介绍Optional(T value),empty(),of(T value),ofNullable(T value)orElse(T other)&#xff0c;orElseGet(Supplier<? extends T> other)和orElseThrow(Supplier<? extends X> exceptionSupplier)map(Function<? super T, ? exten…

Linux第8步_USB设置

学习完设置“虚拟机的电源”后&#xff0c;接着学习通过鼠标点击操作U盘&#xff0c;目的是了解USB设置。 1、在桌面&#xff0c;双击“VMware Workstation Pro”图标&#xff0c;得到下图&#xff1a; 2、点击“编辑虚拟机”&#xff0c;得到下图&#xff1a; 只要点击编辑虚…

03 decision tree(决策树)

一、decision tree&#xff08;决策树&#xff09; 1. classification problems&#xff08;纯度&#xff09; i . entropy &#xff08;熵&#xff09; ​ 作用&#xff1a;衡量一组数据的纯度是否很纯 &#xff0c;当五五开时他的熵都是最高的&#xff0c;当全是或者都不是…

【数据结构】——期末复习题库(6)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

【bug】【VSCode】远程终端TERMINAL打不开

【bug】【VSCode】远程终端TERMINAL打不开 可能的原因现象分析解决 可能的原因 昨天晚上vscode在打开多个TERMINAL的情况下&#xff0c;挂了一晚上&#xff0c;今早上来看的时候全都lost connections…。然后关闭再打开就出现了如上现象。 早上一来到实验室就要debug… 现象…

金蝶Apusic应用服务器 loadTree JNDI注入漏洞

产品介绍 金蝶Apusic是一款企业级应用服务器&#xff0c;支持Java EE技术&#xff0c;适用于各种商业环境。 漏洞概述 由于金蝶Apusic应用服务器权限验证不当&#xff0c;使用较低JDK版本&#xff0c;导致攻击者可以向loadTree接口执行JNDI注入&#xff0c;远程加载恶意类&a…