数组模拟栈WA了最后4个点,有没有大佬帮我看看
查看原帖
数组模拟栈WA了最后4个点,有没有大佬帮我看看
373530
Reply_楼主2022/8/14 20:32
#include<bits/stdc++.h>
using namespace std;
const int N=3e6+10;
int l=1,r=0,a[N],q[N],f[N];
int main()
{	
	int n;
	cin >> n;
	for(int i = 1;i<=n;i++)
	{
		cin >> a[i];
	}
	for(int i = n;i>=1;i--)
	{
		while(l<=r && a[q[r]]<a[i])
		{
			r--;
		}
		if(r<l)
		{
			f[i]=0;
		}
		else f[i]=q[r];
		r++;
		q[r]=i;
	}
	for(int i = 1;i<=n;i++)
	{
		cout << f[i]<< " ";
	 } 
	return 0;
 } 
2022/8/14 20:32
加载中...