【求助】为何单调栈必须倒序处理?
查看原帖
【求助】为何单调栈必须倒序处理?
1062132
Danubius楼主2024/6/21 09:28
#include<bits/stdc++.h>
using namespace std;
stack<int> sta;
const int N=3e6+10;
int n;
int num[N];
int f[N];
int main()
{
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		cin >> num[i];
	}
	for(int i=1;i<=n;i++)
	{
			while((num[i] > num[sta.top()]) && (!sta.empty()))
			{
				f[sta.top()]=i;
				sta.pop();
				//cout << 111 << endl;
			}
			
			sta.push(i);
			
		
	}
	for(int i=1;i<=n;i++)
	{
		cout << f[i]  << " ";
	}
	
	
	return 0;
}

这样写问题出在哪里捏?

为啥会一直卡循环里

求助

2024/6/21 09:28
加载中...