题目42—接雨水

news2024/12/23 18:03:58

题目来源于LeetCode

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

 方法:使用单调栈。找到中间凹槽位置,并利用单调栈找出其左边的第一个最高柱子,右边的第一个最高柱子即循环遍历到的这一个元素。

# 单调栈(单增栈)
# 若当前遍历元素大于栈顶元素,则出现凹槽

height = [4, 2, 0, 3, 2, 5]

list = []
s = 0

for i, v in enumerate(height):
    while list and v > height[list[-1]]:
        top = list.pop()
        if list:
            left = list[-1]
            wid = i - left - 1
            hei = min(height[left], height[i]) - height[top]
            s += wid * hei
        else:
            break
    list.append(i)
print(s)  # 9

 

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

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

相关文章

NKCTF 2024(三月周报比赛一)

web My first cms 扫目录找到管理员界面登陆,账号Admin,密码Admin123,账号可以根据forget来进行查询是否存在,然后进行弱密码攻击,这里网上有两种rce,一种sstl一种代码执行 我用的是第二种 EXtension>use defined…

上班几周了,

过年回来后,时间变得飞快,很多事情都是马上要去干,而且又是很着急的事,呵呵,真的要干趴了 然后——经历了第一次年后的周末连续加班出版本保量产,经历了加班到凌晨3点调试问题,经历我们在疯狂的…

人物百度百科怎么做?需要什么资料?

在互联网时代,百度百科作为国内最具权威性的知识分享平台,吸引了大量用户关注和参与。究竟哪些人适合创建和编辑人物百度百科呢?本文伯乐网络传媒将为您揭秘人物百度百科的适用人群,并详细介绍如何注册、登录、创建及维护人物百度…

Python爬虫学习完整版

一、什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析也成为如今主流的爬取策略。 1 爬虫可以做什么 你可以爬取网络上的的图片&#…

小孔平板应力集中问题matlab有限元编程【源码+PPT讲义】|三节点三角形单元|平面单元|稀疏矩阵 |Comsol网格

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

python中类的导入与使用

1、类的介绍 与C中面向对象思想类似,有时候为了方便,需要专门创建一个类,将相关的函数全部写入到该类中,方便后续创建对象,再使用类中函数。那么如何创建完类,在其他文件中使用类中函数,这是这篇…

FreeRtos学习笔记(12)systemView 分析任务调度情况

FreeRtos学习笔记(12)systemView 分析任务调度情况 使用stm32f429 freertosV10.5.1 systemView 3.5 keil AC5 systemView 移植 从官网下载 systemView 软件 将下面文件添加到工程中 freertos 修改 systemView 需要 FreeRTOSConfig.h 开启如下宏, …

NSS [SWPUCTF 2022 新生赛]Power!

NSS [SWPUCTF 2022 新生赛]Power! 开题。 随便传一个111,后端进行了一个文件包含操作。 输入index.php,回显了一个不可显示图片。 有点小蒙蔽的,一般这种情况就源码,抓包,扫描。源码里面果然有货。 base解码后是index…

城市繁荣需要交通枢纽,企业发展需要营销枢纽

交通、运输、贸易 流量,人流、信流 单词都是:TRAFFIC 大城市都需要铁路、机场等交通枢纽,来承接人流、信息流的inbound“到达、着陆”,城市经济才能得以持续繁荣。 在数字营销技术领域有个非常著名的营销模式叫“inblound marke…

《C++ Primer 第五版 中文版》第12章 动态内存【阅读笔记 + 个人思考】

《C Primer 第五版 中文版》第12章 动态内存【阅读笔记 个人思考】 12.1 动态内存与智能指针12.1.1 shared_ptr类 静态内存包括:初始化只读数据段,初始化读写数据段,未初始化数据和常量数据段。 详细在下面博客总结: Linux系统下…

linux系统编程 socket part2

报式套接字 1.动态报式套接字2.报式套接字的广播3.报式套接字的多播4.UDP协议分析4.1.丢包原因4.2.停等式流量控制 接linux系统编程 socket part1 1.动态报式套接字 在之前的例子上,发送的结构体中的名字由定长改变长。可以用变长结构体。 变长结构体是由gcc扩展的…

加密算法概述:分类与常见算法

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在信息安全领域,加密技术是保护数据不被未授权访问的关键手段。Java作为一种广泛使用的编程语言,提供了丰…

记录个人学习golang路线(如何学习golang,如何转golang)

最近好久没更,在看兔兔的博客,学习golang,兔兔的文章,有一定的编程经验 && 初学golang者,一定要看,如果是其他语言转golang,那就必须要看了,可以帮助你了解golang的语法&…

png转gif怎么做?一招在线转换gif动画

PNG是一种常见的图像文件格式,它支持无损压缩和透明背景,而GIF则是一种支持动画的图像文件格式。在某些情况下,我们可能希望将静态的PNG图像转换为动态的GIF图像,以增加图像的趣味性和吸引力。要将PNG图像转换为GIF图像&#xff0…

【3D reconstruction 学习笔记 第二部】

三维重建 3D reconstruction 4. 三维重建与极几何三角化(线性解法)三角化(非线性解法)多视图几何极几何极几何约束基础矩阵估计 5. 双目立体视觉重建6. 多视图重建7. SFM 系统设计8. SLAM系统设计 4. 三维重建与极几何 三角化&…

如何在CentOS7部署openGauss管理系统并实现固定公网地址连接

文章目录 推荐前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

存储级内存SCM:PCM对决ReRAM

在22年7月份有一件震惊存储圈的事情,那就是Intel说要放弃Optane产品线,包括PMEM和SSD两个方向都要放弃。存储圈看到听到这个消息也是一脸的茫然。 在Optane产品发布之前,大家针对DRAM和SSD之间的性能gap一直在苦苦找寻合适的产品。SCM存储级内…

【LeetCode】回溯

labuladong回溯 回溯算法秒杀所有排列-组合-子集问题 回溯 一个回溯问题,实际上就是遍历一棵决策树的过程,树的每个叶子节点存放着一个合法答案。你把整棵树遍历一遍,把叶子节点上的答案都收集起来,就能得到所有的合法答案。 站…

@SpringBootApplication和SpringApplication.run源码解析:

文章目录 一、SpringBootApplication和自动配置1、主要功能2、SpringBootConfiguration3、EnableAutoConfiguration4、ComponentScan5、Spring boot自动配置5.1、Configuration开启自动配置5.2、查看自动配置5.3、禁用自动配置 二、run()new SpringApplication(&…

Redis常用命令!!!

一、String(字符串) 1、set 设置单个key的value set key value set name 小明 2、mset 设置多个key的value mset key1 value1 key2 value2mset name1 小美 name2 小帅 3、get 获取单个key的值 get key get name4、mget 获取多个key的值 mget key1 key2 k…