数组开在全局没问题,main里有问题,问多大可以开在main里

P4387 【深基15.习9】验证栈序列

quliannanyishou @ 2022-05-23 19:58:28

#include<bits/stdc++.h>
using namespace std;
int c[100003],d[100003];//就是这个
int main()
{
    int a,b,j,l=0;
    stack <int> e;
    cin>>a;
    for(int i=0;i<a;i++)
    {
        cin>>b;
        for(j=0;j<b;j++)
        {
            cin>>c[j];
        }
        for(j=0;j<b;j++)
        {
            cin>>d[j];
        }
        j=0;
        for(int k=0;k<b;k++)
        {
            while(j<b&&c[j]!=d[k])
            {
                e.push(c[j]);
                j++;
            }
            e.push(c[j]);
            j++;
            l=0;
            while(!e.empty()&&k<b&&e.top()==d[k])
            {
                e.pop();
                k++;
                l=1;
            }
            if(l)
            {
                k--;
            }
        }
        if(e.empty())
        {
            cout<<"Yes"<<endl;
        }
        else
        {
            cout<<"No"<<endl;
            while(!e.empty())
            {
                e.pop();
            }
        }
        for(j=0;j<b;j++)
        {
            c[j]=d[j]=0;
        }
    }
}

有的时候明明数组比100003大都可以开在main里,到底是为什么


by Xeqwq @ 2022-05-23 20:01:48

@quliannanyishou 数组就别往main里面开 总是有莫名bug
我就算只有10以下的数组都开全局
养成好习惯qwq


by quliannanyishou @ 2022-05-23 20:02:49

@整活队长xeq ok,谢谢


by Happy_Orca @ 2022-07-01 10:38:47

@quliannanyishou 建议全都开全局,开全局还自动帮你memset0了


|