听说灌水区大佬多
  • 板块灌水区
  • 楼主wangyiqing_DOCX
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/4 10:40
  • 上次更新2023/11/4 12:36:57
查看原帖
听说灌水区大佬多
980247
wangyiqing_DOCX楼主2023/11/4 10:40

单调栈RE求调

代码:

#include<iostream>
#include<stack>
using namespace std;
int h[1000005],ans[1000005];
stack<int> st;
int main() {
	int n;
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>h[i];
	}
	for(int i=1; i<=n; i++) {
		while(1) {
			if((h[i]<=st.top())||(st.empty())) {
				st.push(h[i]);
				break;
			} else {
				st.pop();
				ans[i]++;
			}
		}
	}
	for(int i=1;i<=n;i++){
		cout<<ans[i]<<' ';
	}
	return 0;
}

样例输入:

8
1 2 5 4 3 6 8 7

样例输出:

0 1 1 0 0 3 1 0
2023/11/4 10:40
加载中...