Leetcode 42.接雨水

news/2024/10/19 23:46:29/

给定 n 个非负整数表示每个宽度为 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 * 104
0 <= height[i] <= 105
在这里插入图片描述
单调栈

class Solution {
public:int trap(vector<int>& height) {stack<int> stk;int res = 0;for(int i = 0; i < height.size(); i ++ ) {int last = 0;while(stk.size() && height[stk.top()] <= height[i]) {res += (height[stk.top()] - last) * (i - stk.top() - 1);last = height[stk.top()];stk.pop();}if(stk.size()) res += (height[i] - last) * (i - stk.top() - 1);stk.push(i);}return res;}
};

双指针

class Solution {
public:int trap(vector<int>& height) {int res = 0;int l = 0, r = height.size() - 1;int lmax = 0, rmax = 0;while(l < r) {lmax = max(lmax, height[l]);rmax = max(rmax, height[r]);if(height[l] < height[r]) {res += lmax - height[l];l ++;} else {res += rmax - height[r];r --;}}return res;}
};

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

相关文章

git命令-项目使用

项目中用到的git命令&#xff0c;记录下来&#xff0c;后续项目可以直接用 配置命令 一次性设置&#xff1a; git config --global user.name "Your Name" git config --global user.email "youremailaddress.com"git config --global alias.pl "pu…

###用sh ``` 用sh ``json失败

###用sh 用sh如果你希望使用 Shell 脚本来实现同样的功能&#xff0c;你可以编写一个简单的 Shell 脚本来执行。以下是一个示例 Shell 脚本&#xff0c;它可以读取 JSON 文件&#xff0c;并将每个章节保存到单独的文本文件中&#xff1a; #!/bin/bash# JSON 文件路径 json_fi…

js——如何改变this的指向

一、call方法 call方法是JavaScript中的一个内置函数&#xff0c;它允许你调用一个函数&#xff0c;并为该函数指定this的值。call方法接受两个参数&#xff1a;第一个参数是你想要指定的this值&#xff0c;第二个参数是传递给函数的实际参数列表。 function greet() {consol…

跨境电商IP防关联是什么?有什么作用?

做跨境电商的朋友应该都知道IP防关联这个词,那么为何IP需要防关联呢&#xff1f;今天为大家来解答这个问题。 跨境电商IP防关联是指在跨境电商运营中&#xff0c;通过采取一系列技术手段&#xff0c;确保每个跨境电商账号使用独立的IP地址&#xff0c;以避免账号之间因为IP地址…

国赛大纲解读

1. 第一部分,是针对5G基础知识的掌握,第二部分是人工智能基本算法的掌握,就是人工智能的应用,用5G+人工智能(AI算法)进行网络优化的问题,要有网络优化的基础知识,比如说:某个区域的覆盖问题,覆盖特别差,但有数据,覆盖电频,srp值这些数据给你,根据数据来判断是…

[第一章 web入门]afr_1

[第一章 web入门]afr_1 进入发现参数?phello 猜测为文件读取漏洞&#xff0c;使用?p./hello进行验证 直接?pflag进行尝试&#xff0c;发现有回显 使用php://filter伪协议读取源码 payload ?pphp://filter/readconvert.base64-encode/resourceflag

Day54:WEB攻防-XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架

目录 XSS跨站-攻击利用-凭据盗取 XSS跨站-攻击利用-数据提交 XSS跨站-攻击利用-flash钓鱼 XSS跨站-攻击利用-溯源综合 知识点&#xff1a; 1、XSS跨站-攻击利用-凭据盗取 2、XSS跨站-攻击利用-数据提交 3、XSS跨站-攻击利用-网络钓鱼 4、XSS跨站-攻击利用-溯源综合 漏洞原理…

Mac上设置环境变量PATH

1、 打开终端Terminal。 2、 输入以下命令打开你的shell配置文件&#xff0c;比如bash或zsh。如果你使用的是bash&#xff0c;那么你需要编辑~/.bash_profile或者~/.bashrc文件&#xff1b;如果你使用的是zsh&#xff0c;那么你需要编辑~/.zshrc文件。 open -e ~/.bash_prof…