这个题我学会了fill的用法,他是用来填充数的,遍历一遍整个数组,将相同的数值的个数记录在另一个数组中,最后便利一遍另一个数组,将数组中的最小值求出来,最后不要忘了成2;
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <math.h>
#include <map>
#include<set>
#include <cstring>
#include <sstream>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
int a[100005];
int b[100005];
int n;
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
fill(b,b+n,1);
int j=0;
for(int i=1;i<n;i++)
{
if(a[i]==a[i-1])
b[j]++;
else
j++;
}
int ans=0;
for(int i=1;i<=j;i++)
ans=max(ans,min(b[i],b[i-1]));
cout<<ans*2<<endl;
return 0;
}