• 8-7 Unique Snowflakes UVA11572


    输入一个长度为n n<=10 6  的序列A  找到一个尽量长的连续子序列  使得该序列中没有相同的元素

    用滑动窗口法   时间复杂度n  好神奇

    此题非常经典

    map   410ms

    #include<bits/stdc++.h>
    using namespace std;
    #define N 100000000
    long  a[N];
    int main()
    {
       int cas;
       cin>>cas;
       while(cas--)
       {
           int n;cin>>n;
           for(int i=1;i<=n;i++)
              scanf("%ld",&a[i]);
           map<long,int>mp;
           mp.clear();
           int maxx=0;
           int j=1;
           for(int i=1;i<=n;i++)
             {
                int ok=1;
                 while(ok&&j<=n)
                 {
                     ok=0;
                     if(!mp[ a[j] ])
                     {
                         maxx=max(maxx,j-i+1);
                         mp[ a[j] ]++;
                         ok=1;
                     }
                     j++;
                 }
                 j--;
                 mp[ a[i] ]--;
             }
           printf("%d
    ",maxx);
       }
    }

    LRJ 的代码只用240!。。诶

    注意set的erase用法

    #include<bits/stdc++.h>
    using namespace std;
    #define N 100000000
    int a[N];
    int main()
    {
        int cas;cin>>cas;
        while(cas--)
        {
            int n;cin>>n;
            for(int i=0;i<n;i++)scanf("%d",&a[i]);
            set<int>s;
            int L=0,R=0;
            int ans=0;
            while(R<n)
            {
                while(R<n&&!s.count(a[R]))s.insert(a[R++]);
                ans=max(ans,R-L);
                s.erase( a[L++]);
            }
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    Simulink模块之Zero-Order Hold和Unit Delay的区别
    芯片电源引脚的去耦电容
    STM32中电源引脚
    Simulink:模块参数初始化
    工作笔记1
    至少清楚知道兼容IE8 ie9 ;持续更新
    FROM_UNIXTIME/CONCAT
    采集文章
    文件上传类(引用)
    php文件相关操作
  • 原文地址:https://www.cnblogs.com/bxd123/p/10425543.html
Copyright © 2020-2023  润新知