模板_单调栈_AcWing_830. 单调栈_底顶递增栈

830. 单调栈

  • 题目
  • 提交记录
  • 讨论
  • 题解
  • 视频讲解

给定一个长度为 NN 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1−1。

输入格式

第一行包含整数 NN,表示数列长度。

第二行包含 NN 个整数,表示整数数列。

输出格式

共一行,包含 NN 个整数,其中第 ii 个数表示第 ii 个数的左边第一个比它小的数,如果不存在则输出 −1−1。

数据范围

1≤N≤1051≤N≤105
1≤数列中元素≤1091≤数列中元素≤109

输入样例:

5
3 4 2 7 5

输出样例:

-1 3 -1 2 2
// 模板_单调栈_底顶递增栈
#include<bits/stdc++.h>
using namespace std;const int N=1e5+6;
int in[N];
stack<int> sk;int main()
{int n,i;scanf("%d",&n );for( i=1;i<=n;i++ ) scanf("%d",&in[i] );for( i=1;i<=n;i++ ){// 先弹出 再压入 ( 维护单调性 )while( !sk.empty() && sk.top()>=in[i] ) sk.pop();if( !sk.empty() )   printf("%d",sk.top() );else                printf("-1");if( i!=n ) putchar(' '); // 把当前这个数类比成一个刺客 栈当中比当前这个数大的数都要刺杀 因为当前这个数不但小而且靠后 sk.push( in[i] );}return 0;
}
// 左边第一个比它小
// 左边+小: 底顶递增栈// 左边+大: 底顶递减栈
// 右边+小: 顶底递减栈
// 右边+大: 底顶递增栈

模板_单调栈_AcWing_830. 单调栈_底顶递增栈相关推荐

  1. [力扣刷题总结](栈和单调栈篇)

    文章目录 ~~~~~~~~~~~~栈~~~~~~~~~~~~ 155. 最小栈 解法1:链表 剑指 Offer 31. 栈的压入.弹出序列 解法1:模拟栈 20. 有效的括号 解法1:栈 相似题目: ...

  2. 0x11.基本数据结构 — 栈与单调栈

    目录 一.栈 0.AcWing 41. 包含min函数的栈 (自己造栈) 1.AcWing 128. 编辑器 (对顶栈) 2.AcWing 129. 火车进栈 3.AcWing 130. 火车进出栈问 ...

  3. 【数据结构】单调栈和单调队列 详解+例题剖析

    算法:单调栈和单调队列 一.单调栈和单调队列 二.单调栈例题 1.模板题入门 2.不懂不要急,看这道题 三.单调队列例题 1.入门 2.进阶 一.单调栈和单调队列 单调栈和单调队列与普通的栈,队列不同 ...

  4. 蒟蒻的ACM数据结构(四)-单调队列和单调栈

    单调队列和单调栈 一.概念 二.实现 三.题目 单调队列 洛谷P1886 滑动窗口 解析 单调栈 [GXOI/GZOI2019]与或和 解析 POJ3250 Bad Hair Day 解析 POJ 2 ...

  5. 备战NOI 数据结构——栈与单调栈(stack) 以及后缀表达式

    栈 stack 引入 栈的概念 代码实现 定义和初始化(init) 入栈(push) 出栈(pop) 访问栈顶元素(query) 查询栈的元素个数(size) 判断是否为空(empty) 清空栈(cl ...

  6. 算法竞赛入门与进阶 (二)单调队列、单调栈

    栈(stack)和队列( queue ) 1.栈的定义:栈是限定仅在表头进行插入和删除操作的线性表(先进后出) 2.队列的定义:队列是一种特殊的线性表,特殊之处在于 它只允许在表的前端(front)进 ...

  7. LeetCode 84. 柱状图中最大的矩形(单调递增栈)

    文章目录 1. 题目 2. 解题 1. 题目 题目链接 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是 ...

  8. LeetCode 85. 最大矩形(DP/单调递增栈,难)

    文章目录 1. 题目 2. 解题 2.1 DP 2.2 单调递增栈 1. 题目 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [[" ...

  9. 线性结构 —— 单调栈与单调队列

    [单调栈] 1.原理 单调栈,就是栈内元素保持一定单调性(单调递增或单调递减)的栈,即从栈底到栈顶单调递增或递减. 对于单调递增的栈,如果栈为空或入栈元素值大于等于栈顶元素值,则入栈:否则,若入栈会破 ...

最新文章

  1. 如何打造项目级硬核简历,成为一名合格的大厂工程师(必看)
  2. 是什么动词_【术语攻略】什么是及物动词?
  3. 使用云服务器安装QEMU搭建嵌入式开发环境
  4. 中国科协发布 2021 开源创新榜,阿里巴巴 2 大开源社区、5 大开源项目上榜
  5. 最长有效括号—leetcode32
  6. OpenStack运维面试(1)
  7. 安防摄像头Onvif、RTSP、GB28181转web无插件直播卡顿分析
  8. python celery应用场景_python celery 模块
  9. C#中gridView常用属性和技巧介绍
  10. 两表关联更新 mysql_MySQL多表更新(关联表更新)
  11. 最新 Bitnami redmine安装与配置
  12. crossplaform---Nodejs in Visual Studio Code 04.Swig模版
  13. 多媒体知识,手机电脑设备联用
  14. 边框盒子 box-sizing 的 content-box 和 border-box属性
  15. 【java】饲养员喂养动物程序设计
  16. win10家庭中文正式版输入法切换快捷键设置为Ctrl+Shift
  17. 前端package.json中的scripts
  18. vue ElementUI :InfiniteScroll 无限滚动问题
  19. 河北省职称计算机考试题,最新河北省职称计算机考试题库真题.doc
  20. 优势谈判--读后感悟

热门文章

  1. iphone如何查看dns延迟_购买二手iPhone,如何正确快速查看手机串号?避免被坑!...
  2. 双色球预测的一次尝试——修正
  3. 学习笔记-Windows-LOL
  4. 比代码更难的事!看完这些思维习惯的人,都成为了架构师
  5. 【仓库管理】搭建 Maven 私服之一--Nexus仓库(Repository)管理软件
  6. Slow-Fast使用教程2023.5.30
  7. (沙盘)sandboxie的使用方法
  8. 一键反编译Android包教程
  9. Post请求爬取国家税务总局纳税信用A级纳税人信息
  10. 0.96寸oled屏幕在任意区域画点