单调栈(模板题)(c++题解)

发布时间:2024年01月24日

题目描述

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

输入格式

第一行输入一个n

第二行输入n个整数

输出格式

n行,每行1个数,表示当前数左边第一个比当前数小的数

样例

样例输入

复制5
3 4 2 7 5

样例输出

复制-1
3
-1
2
2

数据范围与提示

n <= 100000

ai 属于 int

_____________________________________________________________________________

日常发作业题解。?

今天这几篇题解写死我啦!

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?

_____________________________________________________________________________

#include <bits/stdc++.h>
using namespace std;
stack<int> a;
int n,m;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
    	scanf("%d",&m);
    	while(!a.empty()&&a.top()>=m){
    		a.pop();
		}
		if(a.empty())printf("-1\n");
		else printf("%d\n",a.top());
		a.push(m);
	}
}

?

文章来源:https://blog.csdn.net/hb_zhyu/article/details/135824673
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。