模板_单调栈_AcWing_830. 单调栈_底顶递增栈
模板_单调栈_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. 单调栈_底顶递增栈相关推荐
- [力扣刷题总结](栈和单调栈篇)
文章目录 ~~~~~~~~~~~~栈~~~~~~~~~~~~ 155. 最小栈 解法1:链表 剑指 Offer 31. 栈的压入.弹出序列 解法1:模拟栈 20. 有效的括号 解法1:栈 相似题目: ...
- 0x11.基本数据结构 — 栈与单调栈
目录 一.栈 0.AcWing 41. 包含min函数的栈 (自己造栈) 1.AcWing 128. 编辑器 (对顶栈) 2.AcWing 129. 火车进栈 3.AcWing 130. 火车进出栈问 ...
- 【数据结构】单调栈和单调队列 详解+例题剖析
算法:单调栈和单调队列 一.单调栈和单调队列 二.单调栈例题 1.模板题入门 2.不懂不要急,看这道题 三.单调队列例题 1.入门 2.进阶 一.单调栈和单调队列 单调栈和单调队列与普通的栈,队列不同 ...
- 蒟蒻的ACM数据结构(四)-单调队列和单调栈
单调队列和单调栈 一.概念 二.实现 三.题目 单调队列 洛谷P1886 滑动窗口 解析 单调栈 [GXOI/GZOI2019]与或和 解析 POJ3250 Bad Hair Day 解析 POJ 2 ...
- 备战NOI 数据结构——栈与单调栈(stack) 以及后缀表达式
栈 stack 引入 栈的概念 代码实现 定义和初始化(init) 入栈(push) 出栈(pop) 访问栈顶元素(query) 查询栈的元素个数(size) 判断是否为空(empty) 清空栈(cl ...
- 算法竞赛入门与进阶 (二)单调队列、单调栈
栈(stack)和队列( queue ) 1.栈的定义:栈是限定仅在表头进行插入和删除操作的线性表(先进后出) 2.队列的定义:队列是一种特殊的线性表,特殊之处在于 它只允许在表的前端(front)进 ...
- LeetCode 84. 柱状图中最大的矩形(单调递增栈)
文章目录 1. 题目 2. 解题 1. 题目 题目链接 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是 ...
- LeetCode 85. 最大矩形(DP/单调递增栈,难)
文章目录 1. 题目 2. 解题 2.1 DP 2.2 单调递增栈 1. 题目 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [[" ...
- 线性结构 —— 单调栈与单调队列
[单调栈] 1.原理 单调栈,就是栈内元素保持一定单调性(单调递增或单调递减)的栈,即从栈底到栈顶单调递增或递减. 对于单调递增的栈,如果栈为空或入栈元素值大于等于栈顶元素值,则入栈:否则,若入栈会破 ...
最新文章
- 如何打造项目级硬核简历,成为一名合格的大厂工程师(必看)
- 是什么动词_【术语攻略】什么是及物动词?
- 使用云服务器安装QEMU搭建嵌入式开发环境
- 中国科协发布 2021 开源创新榜,阿里巴巴 2 大开源社区、5 大开源项目上榜
- 最长有效括号—leetcode32
- OpenStack运维面试(1)
- 安防摄像头Onvif、RTSP、GB28181转web无插件直播卡顿分析
- python celery应用场景_python celery 模块
- C#中gridView常用属性和技巧介绍
- 两表关联更新 mysql_MySQL多表更新(关联表更新)
- 最新 Bitnami redmine安装与配置
- crossplaform---Nodejs in Visual Studio Code 04.Swig模版
- 多媒体知识,手机电脑设备联用
- 边框盒子 box-sizing 的 content-box 和 border-box属性
- 【java】饲养员喂养动物程序设计
- win10家庭中文正式版输入法切换快捷键设置为Ctrl+Shift
- 前端package.json中的scripts
- vue ElementUI :InfiniteScroll 无限滚动问题
- 河北省职称计算机考试题,最新河北省职称计算机考试题库真题.doc
- 优势谈判--读后感悟
热门文章
- iphone如何查看dns延迟_购买二手iPhone,如何正确快速查看手机串号?避免被坑!...
- 双色球预测的一次尝试——修正
- 学习笔记-Windows-LOL
- 比代码更难的事!看完这些思维习惯的人,都成为了架构师
- 【仓库管理】搭建 Maven 私服之一--Nexus仓库(Repository)管理软件
- Slow-Fast使用教程2023.5.30
- (沙盘)sandboxie的使用方法
- 一键反编译Android包教程
- Post请求爬取国家税务总局纳税信用A级纳税人信息
- 0.96寸oled屏幕在任意区域画点