leetcode:42.接雨水

embedded/2024/9/22 17:26:10/

单调栈解题思路:

需要知道当前遍历到的元素左边和右边第一个比该元素大的元素。

如果当前遍历到的元素大于栈顶元素,则该元素为栈顶元素右边第一个比它大的元素,此时,栈顶元素的栈内相邻元素是该元素左边第一个比它大的元素。【其中栈顶元素是凹槽中间的柱子】

总结:

单调栈是按照 行 的方向来计算雨水从栈顶到栈底的顺序:从小到大通过三个元素来接水:栈顶,栈顶的下一个元素,以及即将入栈的元素雨水高度是 min(凹槽左边高度, 凹槽右边高度) - 凹槽底部高度雨水的宽度是 凹槽右边的下标 - 凹槽左边的下标 - 1(因为只求中间宽度)

代码实现:


http://www.ppmy.cn/embedded/6407.html

相关文章

HDFS详解(Hadoop)

Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)是 Apache Hadoop 生态系统的核心组件之一,它是设计用于存储大规模数据集并运行在廉价硬件上的分布式文件系统。 1. 分布式存储: HDFS 将文件分割成若干块…

Linux终端彩色输出

Linux终端的彩色输出 1. 根据终端颜色输出模式前景色背景色 2. 自定义颜色输出 在Linux终端中,可以使用 printf 命令和转义序列 \033 来改变文本的颜色。和具体的语言无关。 该种方法只限于控制台的输出改变颜色。 1. 根据终端颜色输出 前缀后缀 \033[ {模式} ; …

最大子数组和(贪心)

53. 最大子数组和 - 力扣(LeetCode) 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 样例输入 示例…

理论学习:感受野

参考链接: 安全验证 - 知乎 一、感受野的概念 感受野(Receptive Field)的定义:卷积神经网络每一层输出的特征图(feature map)上的像素点映射回输入图像上的区域大小。通俗点的解释是,特征图上…

保护视力,从 CareUEyes 开始 —— 你的电脑护眼小助手

在数字化时代,我们的眼睛比以往任何时候都更频繁地面对屏幕。长时间盯着电脑工作,不仅影响视力,还可能导致眼疲劳和不适。今天,我要向大家推荐一款专为电脑用户设计的护眼软件——CareUEyes。 CareUEyes:你的视力守护者…

Qt中定时器的3种实现方法

一.使用QTimer定时器类(首选) 1.示例代码: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); ui->setupUi(this); time1 new QTimer(); time1->setInterval(1000…

Java锁机制

synchronized synchronized的使用 synchronized锁的的内容应该是变化的量。 锁定块 //synchronized 关键字,上锁后执行后面的代码 public class T5_Synchronized {public void m(){synchronized (this) {cnt--;System.out.println( Thread.currentThread().getN…

交换排序:冒泡排序和快速排序

冒泡排序 思路 通过多次遍历数组,比较相邻的元素,并交换它们,使得每次遍历结束后,最大(或最小)的元素都“冒泡”到数组的末尾 实现 public class Main {public static void main(String[] args) {int[] …