题目描述
X星球的人最厌恶就是重复。尤其是别人说出的话,如果你马上就重复说这句话。就会让对方很不愉快。所以在X星球的书籍里的句子的字也要尽量不能重复,我们定义一个长度为n的数字序列A:如果[l, r]区间里的数字两两都不相等。那么我们就称这样一个序列为A序列的一个"愉快序列"。 现在给你一个序列,让你求它最长的"愉快序列"。输出它的长度(欢迎暴力)
输入
多样例测试
第一行输入一个T表示样例数(1<=T<=200)
对于每个样例:
第一行输入一个整数n (1<=n<=10^5)
第二行输入n个整数ai (0=<ai<=10^5)
输出
对于一个序列,输出它最长的"愉快序列"的长度。
样例输入
3
1
1
3
1 3 1
5
4 5 6 7 4
样例输出
1
2
4
直接暴力解,从后往前推,遇到相同的,下次推到相同的+1。
#include<stdio.h>
int main(){
int t;
scanf("%d",&t);
while(t--){
int p=-1,n,a[100010],count=0,max=1,begin=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
count=1;
scanf("%d",&a[i]);
for(int k=i-1;k>=begin;k--)
{
if(a[i]==a[k]){
begin=k+1;
break;
}
else count++;
if(count>max)max=count;
}
}
printf("%d\n",max);
}
return 0;
}