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

Posted 幽殇默

tags:

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

在这里插入图片描述
https://www.acwing.com/problem/content/description/801/
朴素写法:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int N=1e5+10;
int a[N];
bool hush[N];
int ans;
int main(void)
{
	int n; cin>>n;
	for(int i=0;i<n;i++) scanf("%d",&a[i]);
	for(int i=0;i<n;i++)
	{
		int k=0;
		memset(hush,0,sizeof hush);
		for(int j=i;!hush[a[j]]&&j<n;j++)
			k++,hush[a[j]]=true;
		ans=max(ans,k);
	}
	cout<<ans<<endl;
	return 0;
}

在这里插入图片描述
双指针写法:


#include<cstdio>
#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N],hush[N];
int n;
int ans;
int main(void)
{
	cin>>n;
	for(int i=0;i<n;i++) cin>>a[i];
	for(int i=0,j=0;i<n;i++)
	{
		hush[a[i]]++;
		while(hush[a[i]]>1)
		{
			hush[a[j]]--;
			j++;
		}
		ans=max(ans,i-j+1);
	}
	cout<<ans<<endl;
}

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

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

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

代码随想录算法训练营第五十二天 | 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

最长连续不重复子序列

最长连续不重复子序列

最长连续不重复子序列