数据结构——单调栈

2023-10-31

单调栈

定义

单调递增栈:单调递增栈就是从栈底到栈顶数据是从小到大
单调递减栈:单调递减栈就是从栈底到栈顶数据是从大到小

实现

以单调递增栈为例,向栈中推入元素时,如果栈顶元素比当前元素大,则将栈顶元素推出,直到栈顶元素比当前元素小或者栈为空,然后将当前元素推入栈中。

stack<int> sta;
for (遍历数组)
{
    while (栈不为空 && 栈顶元素大于当前元素)
        sta.pop();
    sta.push(当前元素);
}

作用

找到左边(右边)第一个比当前元素小(大)的元素。

例题

LeetCode 84

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构——单调栈 的相关文章

  • Java发送附件到邮箱

    1 配置 导入依赖以及在yml中写好邮箱的配置信息
  • Git 详细安装教程【图文讲解】

    目录 一 前言 二 Git 的安装 2 1 Git 的下载 2 2 Git 的安装 2 2 1 使用许可声明 2 2 2 选择安装目录 2 2 3 选择安装组件 2 2 4 选择开始菜单文件夹 2 2 5 选择 Git 默认编辑器 2 2

随机推荐

  • 性能测试常见指标分析

    压力测试 强调极端暴力 稳定性测试 在一定压力下 长时间运行的情况 基准测试 在特定条件下的性能测试 负载测试 不同负载下的表现 容量测试 最优容量 外部指标 从外部看 性能测试主要关注如下三个指标 吞吐量 每秒钟系统能够处理的请求数 任务
  • 技术管理到底管什么

    https mp weixin qq com s QN1OKEFT3DiA82 OAp858Q 前些天从湾区日报上看到美国一家叫 Gusto 的公司 CTO 的文章 他 6 年前开始创业 一开始他是唯一的工程师 几乎 100 时间都在写代码
  • MS Chart 控件学习(一)常见属性

    最常用的属性包括 ChartAreas 增加多个绘图区域 每个绘图区域包含独立的图表组 数据源 用于多个图表类型在一个绘图区不兼容时 AlignmentOrientation 图表区对齐方向 定义两个绘图区域间的对齐方式 Alignment
  • 个人计算机多核cpu好处,电脑cpu核数全开会怎样 对电脑有什么影响

    不少网友听说开启电脑cpu核数可以让电脑性能变高 不知道是不是真的 也有网友担心电脑cpu核数全开会怎样 会不会对电脑有影响 今天小编就跟大家聊下电脑cpu核数全开对电脑影响 首先 想要开启cpu核数 是可以在运行中输入msconfig打开
  • 全球排名前500的网站都是做什么的

    数据来自Alexa权威2016 3 3 Google com Enables users to search the world s information including webpages images and videos Offe
  • HttpClient的基本使用

    HttpClient4 510 API参考 点我进入 HTTP 协议可能是现在 Internet 上使用得最多 最重要的协议了 越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源 虽然在 JDK 的 java net包
  • 【DirectX11学习02】绘制单个基本几何体的线框

    注 下面涉及的代码都基于这篇文章的内容 https blog csdn net Kurozaki Kun article details 86709050 绘制过程 要在DX上绘制一个基本图形 大体流程有以下几步 给出输入布局 主要是描述顶
  • 对象池(连接池):commons-pool2源码解析:GenericObjectPool的returnObject方法解析

    为什么会有对象池 在实际的应用工程当中 存在一些被频繁使用的 创建或者销毁比较耗时 持有的资源也比较昂贵的一些对象 比如 数据库连接对象 线程对象 所以如果能够通过一种方式 把这类对象统一管理 让这类对象可以被循环利用的话 就可以减少很多系
  • windows安装docker desktop

    windows安装docker desktop 前言 一 docker desktop 是什么 二 安装步骤 1 下载 2 安装 总结 前言 这里针对windows 10 家庭中文版 其他版本部分步骤可跳过 一 docker desktop
  • ChatGPT写作提示词指令大全

    1 用ChatGPT写影评 指令 你是一个自媒体人 同时也是一个专业的影评人 最近熬夜看完了韩剧黑暗荣耀第一季和第二季 忍不住想在公众号分享给粉丝们 请写一篇1000字左右的自媒体文章 并且加上一个有吸引力的标题 指令模板 你是一个自媒体人
  • 使用腾讯云 GPU 学习深度学习系列

    https cloud tencent com developer article 1005199
  • 模拟电路设计(17)---典型RC正弦波振荡器

    RC正弦波振荡器 采用LC器件作为振荡电路的反馈网络可以达到很高的输出频率 器件比较容易实现小体积 但是要求振荡器输出几十或者几百Hz信号时 LC器件的取值会很大 很难实现实用的产品 此时采用RC选频网络就会有很大的优势 RC LC反馈振荡
  • C#:Xxxx.GetTypes()引发了类型“System.Reflection.ReflectionTypeLoadException”的异常

    参考 Xxxx GetTypes 引发了类型 System Reflection ReflectionTypeLoadException 的异常 Nemo的笔记本 CSDN博客
  • 用户界面与业务逻辑的分离

    前面分别实现了计算器程序的用户界面和业务逻辑 基本程序架构一般包含 用户界面模块 UI 接受用户输入及呈现数据 业务逻辑模块 Business Logic 根据用户需求处理数据 基本设计原则 功能模块之间需要进行解耦 核心思想 强内聚 弱耦
  • 以太坊开发框架——Truffle的基础使用

    这里写目录标题 Truffle Truffle 简介 Truffle 的客户端 安装Truffle 创建项目 Migration artifacts require exports 的函数 deployer 对象 更新 migration
  • TCP三次握手

    TCP三次握手的原因 双方都确认对方具有接收和发送数据的功能 1 初始状态 双方都处于Closed状态 2 服务器开启监听功能 处于Listen状态 3 第一次握手 客户端发起请求 发送一个SYN标识 连接请求数据包 seq x 并处于SY
  • vue 树形结构数据的便捷遍历,及树形结构与平级列表的相互转换(使用xe-utils函数)

    一 使用xe utils函数 xe utils 的api地址 xe utils 函数库 工具类 二 安装 npm安装 npm install xe utils 引用 import XEUtils from xe utils 1 mapTre
  • 数据结构(使用静态数组实现顺序表)

    一 定义 1 线性表 1 线性表的定义 逻辑结构 具有相同数据类型的n n gt 0 的有限个数的数据元素的有序排列 2 线性表的运算 操作 创建销毁 增删改查 3 线性表的存储结构 顺序存储 产生了顺序表 链式存储 产生了链表 2 顺序表
  • 华为云服务器怎么传文件,在云服务器终端里面怎么传文件

    在云服务器终端里面怎么传文件 内容精选 换一换 已获取该弹性云服务器的密钥文件 弹性云服务器已经绑定弹性IP地址 已配置安全组入方向的访问规则 如果您是在Windows操作系统上登录Linux 可以按照下面方式登录弹性云服务器 我们以PuT
  • 数据结构——单调栈

    单调栈 定义 单调递增栈 单调递增栈就是从栈底到栈顶数据是从小到大 单调递减栈 单调递减栈就是从栈底到栈顶数据是从大到小 实现 以单调递增栈为例 向栈中推入元素时 如果栈顶元素比当前元素大 则将栈顶元素推出 直到栈顶元素比当前元素小或者栈为