Acwing799 最长连续不重复子序列

利用s[]来判断是否重复

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N],s[N];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    scanf("%d",&a[i]);
    int res=0;
    for(int i=0,j=0;i<n;i++)
    {
        s[a[i]]++;
        while(s[a[i]]>1)//如果有重复的,则需要移动j
        {
            s[a[j]]--;
            j++;
        }
        res=max(res,i-j+1);//寻找最大值
    }
    printf("%d",res);
    return 0;
}

版权声明:本文为weixin_44488944原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>