您的当前位置:首页正文

C++双指针算法

2024-11-27 来源:个人技术集锦

#include <bits/stdc++.h>
using namespace std;

const int maxn = 100000 + 5;
int q[maxn], s[maxn];

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int n;
	cin >> n;
	
	for (int i = 0; i < n; i ++)
	{
		cin >> q[i];
	}
	
	int ans = 0;
	for (int i = 0, j = 0; i < n; i ++)
	{
		s[q[i]] ++;
		while (j < i && s[q[i]] > 1) 
		{
			s[q[j ++]] --;
		}
		ans = max(ans, i - j + 1);
	}
	
	cout << ans << endl;
	
	return 0;
}
显示全文