利用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;
}
Acwing799 最长连续不重复子序列
最新推荐文章于 2024-03-29 14:01:40 发布