C++ 代码
#include<iostream>
using namespace std;
const int N=2e5+5;
int T,n,a[N],d[N];//原数组和差分数组
int main(){
cin>>T;
for(int t=1;t<=T;t++){
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
d[i]=a[i]-a[i-1];//构建差分数组
}
d[1]=0;//差分数组第一项设置为0
int num=0,l=1,r=1;
while(r<=n){//找相邻且相同的最长序列
if(d[r]!=d[l]){//找到不相同比较长度,并移动左指针
num=max(num,r-l+1);
l=r;
}
r++;
}
num=max(num,r-l+1);
printf("Case #%d: %d\n",t,num);//输出结果
}
return 0;
}