双指针
$O(n)$
求一段连续的目标序列,用双指针;
看数据范围,选择线性算法。
上模板:
#include<iostream>
#include<cmath>
using namespace std;
const int N=2e5+10;
int main()
{
int T; cin>>T;
for(int ith=1;ith<=T;ith++)
{
int n; cin>>n;
int a[N];
for(int i=0;i<n;i++) cin>>a[i];
int res=0;
for(int i=0;i<n-1;i++)
{
int gc=a[i+1]-a[i];
int j=i+2;
while(a[j]-a[j-1]==gc) j++;
res=max(res,j-i);
i=j-2;
}
printf("Case #%d: %d\n",ith,res);
}
return 0;
}