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;
}