题意:数列中只有一对相邻的数是相同的;
//寻找规律,如果只有一对输出0; // 如果只有三个挨着的输出1; // 超过两对的时候,只需要找出相等的对数,对应的下标, // 相减即可;因为>=两对的时候,两对中的数一定会被修改; #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N=200010; int n; int a[N]; void solve() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } int x=0,y=0; for(int i=1;i<=n-1;i++) { if(a[i]==a[i+1]) { x=i+1; break; } } for(int i=n;i>=2;i--) { if(a[i]==a[i-1]) { y=i-1; break; } } if(x==y&&x!=0&&y!=0) cout<<1<<endl; else if(y<x) cout<<0<<endl; else cout<<y-x<<endl; } int main() { int t; cin>>t; while(t--) { solve(); } return 0; }