给定一个长度为??的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出?。
第一行输入一个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);
}
}
?