代码随想录算法训练营day60 || 42.接雨水

news/2025/2/19 9:38:14/

问题:42. 接雨水 - 力扣(LeetCode)

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

思路:本题我用的是双指针的方法,首先明确在遍历高度时,其最大值可由该点的高度值乘以左右两边第一个比该点高度小的差值再减去1得到,即s=max(s,(rheight-lheight-1)*height[i])。可定义两个向量用来记录某点处左右两边第一个小于该点高度的小标,同时注意初始化的值避免进入死循环,具体代码如下:

class Solution {
public:int trap(vector<int>& height) {if(height.size() <= 2) return 0;int sum = 0;vector<int> lheight(height.size(),0);vector<int> rheight(height.size(),0);lheight[0] = height[0];for(int i = 1;i < height.size(); i++){lheight[i] = max(lheight[i-1],height[i]);}rheight[height.size()-1] = height[height.size()-1];for(int i = rheight.size()-2;i >= 0;i--){rheight[i] = max(rheight[i+1],height[i]);}for(int i = 0;i < height.size();i++){int h = min(rheight[i],lheight[i]) - height[i];if(h > 0) sum += h;}return sum;}
};

现在状态不好,暂时用双指针方法,晚上再看看单调栈。


http://www.ppmy.cn/news/1100649.html

相关文章

网络原理(一)网络基础,包括IP ,网络相关的定义

网络基础&#xff0c;包括IP &#xff0c;网络相关的定义 网络基础冲突域广播域DNSNATNAPT 网络基础 以下图片是书上的网图。 什么是IP地址&#xff1f; IP地址&#xff08;Internet Protocol Address&#xff09;是指互联网协议地址&#xff0c;又译为网际协议地址。P地址是…

MindFusion.Diagramming for ASP.NET MVC 4.2 Crack

ASP.NET MVC 4.2 的 MindFusion.Diagramming 添加对多个图表页面和选项卡式图表视图的支持。 2023 年 9 月 8 日 - 16:57新版本 特征 多个图表页面-添加了DiagramDocument 类&#xff0c;它表示图表页面或工作表的集合。 可以将新页面添加到文档中&#xff0c;并且可以删除或重…

IDEA中的MySQL数据库所需驱动包的下载和导入方法

文章目录 下载驱动导入方法 下载驱动 MySQL数据库驱动文件下载方法&#xff1a; 最新版的MySQL版本的驱动获取方法&#xff0c;这个超链接是下载介绍的博客 除最新版以外的MySQL版本的驱动获取方法&#xff0c;选择Platform Independent&#xff0c;选择第二个zip压缩包虾藻…

Dos的三种攻击类型

弱点攻击 向一台目标主机上运行的易受攻击的应用程序或操作系统发哦是那个制作精细的报文。如果适当顺序的多个分组发送给一个易受攻击的应用程序或者操作系统&#xff0c;该服务器可能停止运行&#xff0c;或者更糟糕的是主机可能崩溃。 宽带泛洪 攻击者向目标主机发送大量…

Spring Boot 整合 MyBatis

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

万字C语言之分支语句和循环语句

前言&#xff1a; &#x1f4d5;作者简介&#xff1a;热爱编程的小七&#xff0c;致力于C、Java、Python等多编程语言&#xff0c;热爱编程和长板的运动少年&#xff01; &#x1f4d8;相关专栏Java基础语法&#xff0c;JavaEE初阶&#xff0c;数据库&#xff0c;数据结构和算法…

Android 13.0 Launcher3定制之双层改单层(去掉抽屉式三)

1.概述 在13.0的系统产品开发中,对于在Launcher3中的抽屉模式中,系统默认的就是抽屉单层模式,但是在很多产品中需要默认为 单层模式,就是要求去掉双层抽屉模式,接下来看下如何继续实现去掉抽屉双层模式,来变成单层模式第三节 2.Launcher3定制之双层改单层(去掉抽屉式三)…

泛型的使用

I. 什么是泛型&#xff1f; A. 泛型的定义 泛型&#xff08;Generics&#xff09;是一种允许你在编写类、接口和方法时使用类型参数的机制&#xff0c;以提高代码的灵活性和重用性。泛型允许你编写通用的代码&#xff0c;可以在不同的数据类型上工作&#xff0c;而无需为每种…