AcWing 799. 最长连续不重复子序列 双指针 AC_any
原题链接
简单
作者:
AC_any
,
2021-05-10 11:02:59
,
所有人可见
,
阅读 248
c++
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int n;
int a[N];
int s[N];//统计当前[j,i]中数字出现的次数
void acwing(){
cin>>n;
for (int i = 0; i < n; i ++ ){
scanf("%d", &a[i]);
}
int ans=0;
for (int i = 0,j=0; i < n; i ++ ){
s[a[i]]++;//出现加一
while(s[a[i]]>1){//从起点j开始剔除重复
s[a[j]]--;
j++;
}
ans=max(ans,i-j+1);
}
cout<<ans<<endl;
}
int main()
{
acwing();
return 0;
}