直接看样例吧
8
1 1 2 3 4 5 7 7
现在的值为2 我们要将其变为0 或者1
先变第一对
1 x x 3 4 5 7 7
1 x y y 4 5 7 7
1 x y z z 5 7 7
1 x y z m m 7 7
1 x y z m n n 7 好了目前只剩一对了 大概思路就是这样
#include<bits/stdc++.h>
using namespace std;
const int N=1e5;
int a[N*2+10];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int i,j,k,m,n,t;
cin>>t;
while(t--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
int l=-1,r=-1;
for(i=1;i<n;i++)
{
if(a[i]==a[i-1])
{
if(l==-1)
l=i;
r=i;
}
}
if(l==r)
{
cout<<"0"<<endl;
continue;
}
// printf("%d %d\n",l,r);
cout<<max(1,r-l-1)<<endl;
}
return 0;
}
//1 1 2 3 4 5 7 7