leetcode (top100)接雨水

news2024/11/19 7:44:03

题目:

题解:

可以把每个宽度看作一个桶,每个桶能接的水等于这个桶左右两个方向最高桶的最小高度再减去这个桶本身的高度。把每个桶能接的水相加即可。

难点在于如何快速找到当前桶的左右两个方向的最高桶的高度,可以先遍历一遍数组找出前缀最大值,和后缀最大值,前位置左右最高桶的高度就为当前位置的前缀最大值和后缀最大值。

int trap(vector<int>& height) {
        int arr[height.size()];
        int brr[height.size()];
        for(int i=0;i<height.size();i++){
            if(!i){
                arr[i]=height[i];
            }else{
                arr[i]=max(arr[i-1],height[i]);
            }
        }
        for(int i=height.size()-1;i>=0;i--){
            if(i==height.size()-1){
                brr[i]=height[i];
            }else{
                brr[i]=max(height[i],brr[i+1]);
            }
        }
        int ans=0;
        for(int i=0;i<height.size();i++){
            ans+=min(arr[i],brr[i])-height[i];
        }
        return ans;
    }

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

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

相关文章

Java学习【深入解读File类:从基础到高级的完整指南】

Java学习【深入解读File类&#xff1a;从基础到高级的完整指南】 ⭐File的概述和构造方法⭐File常见的成员方法&#x1f319;构造方法&#x1f319;length()&#x1f319;getAbsoluteFile()和getPath()&#x1f319;getName()和lastModified() ⭐文件的创建和删除⭐获取并遍历 …

电脑操作系统有哪些?一文了解全部!

在当今数字化飞速发展的时代&#xff0c;电脑操作系统作为计算机硬件与软件之间的桥梁&#xff0c;扮演着至关重要的角色。它不仅管理着计算机的各项资源&#xff0c;还为用户提供了一个直观、友好的界面&#xff0c;使得用户可以轻松地进行各种操作和任务。那么&#xff0c;电…

【八股系列】介绍React高阶组件,适用于什么场景?

文章目录 1. HOC的工作原理2. 返回的新组件3. 适用场景4. 注意事项5. 示例代码 React高阶组件&#xff08; Higher-Order Components&#xff0c;简称HOC&#xff09;是 React中一种高级的 复用组件逻辑的技术。 HOC自身不是 React API的一部分&#xff0c;而是基于 Reac…

Zyxel NAS设备 setCookie 未授权命令注入漏洞复现(CVE-2024-29973)

0x01 产品简介 Zyxel-NAS 是指由 Zyxel Communications Corporation(合勤科技股份有限公司)开发和生产的网络附加存储(Network Attached Storage,简称 NAS)设备。NAS 是一种专门用于存储和共享文件的设备,它通过网络连接到计算机、服务器或其他设备,提供集中式的文件存…

linux最大线程数限制及打开最大文件数

1.root用户下执行 ulimit -a 然后查看 max user processes 这个值通常是系统最大线程数的一半 max user processes&#xff1a;当前用户同时打开的进程(包括线程)的最大个数为 2.普通用户下 ulimit -a 出现的max user processes的值 默认是 /etc/security/limits.d/20-nproc.co…

范式(下)-BC范式(BCNF)、关系模式的规范化

一、关系模式STC 假设有一个关系模式STC&#xff0c;包含有学号Sno、教师编号Tno、课程编号Cno、选课成绩G四个属性 即STC(Sno&#xff0c;Tno&#xff0c;Cno&#xff0c;G) 数据间的关系为 每个学生可选修多门课程&#xff0c;每门课程可以被多名学生选修每个老师只能讲授…

虹科免拆诊断案例 | 15款马自达3偶发高速CAN网络故障

CAN总线大家都不陌生&#xff0c;遇到这类故障&#xff0c;我们第一反应可能是用万用表测一下电压&#xff0c;看看存不存在短路、断路等问题。不过&#xff0c;使用万用表测得的电压值只是CAN总线上的平均电压&#xff0c;是一个大概的数值&#xff0c;并不能反映真实的CAN总线…

用户组相关的一些命令

1./etc/passwd>列出了系统里的所有用户 2./etc/shadow>保存了用户的密码信息 空表示密码为空 *表示账号被在锁定 !表示未设置密码 !!表示这个密码已经过期 $1表示MD5加密&#xff0c; $2表示用Blowfish加密&#xff0c; $5表示用SHA-256加密&#xff0c; $6表示SHA-512加…

关于微信小程序(必看)

前言 为规范开发者的用户个人信息处理行为&#xff0c;保障用户的合法权益&#xff0c;自2023年9月15日起&#xff0c;对于涉及处理用户个人信息的小程序开发者&#xff0c;微信要求&#xff0c;仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则…

FANUC喷涂机器人P-350iA电机过热维修解决方案

发那科喷涂机器人作为自动化喷涂生产线的重要组成部分&#xff0c;其性能稳定性和可靠性对于生产效率和产品质量具有重要影响。然而&#xff0c;在实际使用过程中&#xff0c;FANUC喷涂机器人P-350iA电机过热故障问题往往成为影响其正常运行的主要因素之一。 FANUC机器人M-100…

数据库实战(一)(关系数据库设计)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 练习题 题型一&#xff1a;判断关系…

登录爆破神器:Hydra 保姆级教程

前言 Hydra 是一个广泛使用的网络登录破解工具&#xff0c;支持多种协议&#xff08;如 HTTP、FTP、SSH、Telnet 等&#xff09;&#xff0c;用于执行暴力破解攻击。它由 Van Hauser 和 The Hackers Choice (THC) 团队开发&#xff0c;设计用于快速和高效地尝试大量用户名和密…

信息技术课如何禁止学生玩游戏

在信息技术课上禁止学生玩游戏是一个常见的挑战&#xff0c;但可以通过一系列策略和工具来有效地实现。以下是一些建议&#xff1a; 明确课堂规则和纪律&#xff1a; (1)在课程开始时&#xff0c;明确告知学生课堂规则和纪律&#xff0c;包括禁止玩游戏的规定。 (2)强调遵守…

创建一个electron桌面备忘录

Sound Of Silence 1.创建electron项目命令&#xff1a; npm create quick-start/electron my-new-project 2选择&#xff1a;√ Select a framework: vue √ Add TypeScript? ... No √ Add Electron updater plugin? ... Yes √ Enable Electron download mirror proxy? .…

记一次生产事故,来来回回搞了一个月

&#x1f345;我是小宋&#xff0c;关注我&#xff0c;带你轻松过面试 读源码。提升简历亮点&#xff08;14个demo&#xff09; &#x1f30f;号&#xff1a;tutou123com。拉你进专属群。 记一次生产事故&#xff0c;来来回回搞了一个月 背景 我们的主要业务是台湾省的一个小…

工业自动化中OBC充电机测试负载箱的应用

在工业自动化中&#xff0c;OBC充电机是电动汽车和混合动力汽车的重要组成部分。它的主要功能是为电动汽车的电池组提供电能&#xff0c;保证车辆的正常运行。为了保证OBC充电机的性能和安全性&#xff0c;通常需要对其进行严格的测试。在这个过程中&#xff0c;负载箱是一种非…

【SQL server速成之路】函数

&#xff08;3&#xff09;LEFT函数 LEFT ( character_expression , integer_expression ) 功能&#xff1a;返回从字符串character_expression左边开始&#xff0c;由integer_expression指定个数的字符。参数character_expression&#xff1a;为字符型表达式&#xff0c;integ…

C#的Switch语句2(如何快速中断函数执行)

文章目录 switch语法结构case具体的值枚举值字符串const关键字 如果没有匹配的值default语句不一定要在最后与C的差异-case穿透&#xff08;Fall-through&#xff09; 下一篇文章 switch语法结构 基础的语法结构&#xff0c;在上一篇文章已经写了&#xff0c;具体请看&#xf…

Python --- 如何修改Jupyter Notebook在本地保存文件的默认路径?

如何修改Jupyter Notebook在本地保存文件的默认路径&#xff1f; 一直以来都比较喜欢jupter notebook&#xff0c;自从用了以后就爱上了。平时用的时候&#xff0c;因为大多都是临时调用&#xff0c;每次在界面里直接new一个新的file就开干。 曾经也想过我创建的这些python文件…

MySQL从5.7升级到8.0步骤及其问题

MySQL从5.7升级到8.0步骤及其问题 前言 本文源自微博客&#xff0c;且以获得授权&#xff0c;请尊重版权。 一、需求背景 Docker环境下&#xff0c;MySQL5.7升级到8.0&#xff0c;数据迁移时使用的是mysqldump方式迁移。 二、迁移步骤 数据备份&#xff1a; docker exec -i 1…