最长连续不重复子序列

Posted hhyx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长连续不重复子序列相关的知识,希望对你有一定的参考价值。

# 题意

给定长度为n 的序列,求连续的没有重复元素的最长子序列的长度

# 题解
双指针,保证j<i ,用一个数组记录当前值的出现个数,
因为是连续的,当 a[ i ]出现两次的时候,j一直向前,并且映射的次数减1,直到 i 对应的值的出现次数为1时候,取最大记录即可

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e5+10;
 4 int n;
 5 int a[N],s[N];
 6 int main(){
 7     ios::sync_with_stdio(0);
 8     cin.tie(0);
 9     cout.tie(0);
10     cin>>n;
11     for(int i=0;i<n;i++)
12         cin>>a[i];
13 
14     int res=0;
15     for(int i=0,j=0;i<n;i++) {
16         s[ a[i] ]++;
17         while(j<i&&s[a[i]]>1) {
18             s[a[j]]--;
19             j++;
20         }
21         res=max(res,i-j+1);
22     }
23     cout<<res;
24 }

 

以上是关于最长连续不重复子序列的主要内容,如果未能解决你的问题,请参考以下文章

最长连续不重复子序列

最长连续不重复子序列

AcWing 799. 最长连续不重复子序列

最长连续不重复子序列

AcWing 799. 最长连续不重复子序列

AcWing 799. 最长连续不重复子序列