CF1714B 题解

题目分析:

这题并不难,我们要使得某一个后缀不含有重复元素,我们记录每一个元素出现的位置和它上一次出现的位置,取上一次出现的位置的最大值,读入的时候处理即可,记录的最大值即为答案。

时间复杂度为 \(O(n)\)

代码

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

struct node {
	int la, now;
} book[N];
int t, n, maxn;

int main() {
	scanf("%d", &t);

	while (t--) {
		scanf("%d", &n);
		memset(book, 0, sizeof(book));
		maxn = 0;

		for (int i = 1; i <= n; i++) {

			int a;
			scanf("%d", &a);
			book[a].la = book[a].now;
			book[a].now = i;
			maxn = max(maxn, book[a].la);
		}

		printf("%d\n", maxn);
	}

	return 0;
}

posted @ 2022-08-15 16:27  Dregen_Yor  阅读(27)  评论(0)    收藏  举报