双指针求助
查看原帖
双指针求助
759274
Stevehim楼主2023/1/8 08:21
#include <bits/stdc++.h>
#define maxn 1000010
using namespace std;
int a[maxn];
int l;
int r;
int t;
int n;
int ans;
int ma;

int main() {
	cin >> t;
	while (t--) {
		cin >> n;
		for (int i = 1; i <= n; i++) {
			cin >> a[i];
		}
		l = 1;
		r = 2;
		ans = 1;
		ma = 1;
		while (l <= r && r <= n) {
			int index = find(a + 1, a + n + 1, a[r]) - a;
			if (index < r) { //说明存在
				l++;
				ans--;
			} else {
				r++;
				ans++;
				ma = max(ma, ans);
			}
		}
		if (t != 0) {
			cout << ma << endl;
		} else {
			cout << ma;
		}

		ans = 0;
		ma = 0;
	}
	return 0;
}

2023/1/8 08:21
加载中...