zoukankan      html  css  js  c++  java
  • 刷题总结——art2(ssoj)

    题目:

    题解:

       o(n)复杂度扫一遍再用一个stack维护就可以了·····mdzz这道题都不会做··

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<ctime>
    #include<cctype>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int N=1e5+5;
    int n,num[N],Left[N],Right[N],deep,stack[N],ans;
    int main()
    {
      //freopen("art2.in","r",stdin);
     // freopen("art2.out","w",stdout);
      scanf("%d",&n);
      for(int i=1;i<=n;i++)
        Left[i]=1e+8;
      for(int i=1;i<=n;i++)
      {  
        scanf("%d",&num[i]);
        Left[num[i]]=min(Left[num[i]],i);
        Right[num[i]]=max(Right[num[i]],i);
      }
      for(int i=1;i<=n;i++)
      {
        if(!num[i])  continue; 
        if(Left[num[i]]==i)
        {  
          stack[++deep]=num[i];
          ans=max(deep,ans);
        }
        if(Right[num[i]]==i)
        {
            if(stack[deep]!=num[i])
            {
              cout<<"-1"<<endl;
              return 0;
            }
            else
              deep--;
        }
      }
      cout<<ans<<endl;
      return 0;
    }
  • 相关阅读:
    linux 下怎么看postgresql安装到哪个目录了?
    sqlserver 存储image 语句
    thinkphp5.1 配置使用
    百度车牌识别demo
    elastticsearch 安装
    InDB开发
    John爆破密码
    域传送漏洞
    新远程下载方式(IME)
    SSH端口转发
  • 原文地址:https://www.cnblogs.com/AseanA/p/7428190.html
Copyright © 2011-2022 走看看