1 条题解
-
0
单调栈
本题是单调栈的简单模板题
单调栈是指在栈内部维护单调性 如果不满足单调性就弹栈
单调性如下图
#include<bits/stdc++.h> using namespace std; const int N=1e5+7; int st[N],h[N]; int top,n; int ans[N]; int main(){ cin>>n; for(int i=1; i<=n; i++)cin>>h[i]; for(int i=n; i>0; i--){ while(top&&h[st[top]]<=h[i])top--; if(!top)ans[i]=0; else ans[i]=st[top]; st[++top]=i; } for(auto i=1; i<=n; i++)cout<<ans[i]<<'\n'; return 0; }
- 1
信息
- ID
- 6977
- 时间
- 1000ms
- 内存
- 500MiB
- 难度
- 3
- 标签
- 递交数
- 9
- 已通过
- 6
- 上传者