首先n==1和a[0]==a[n-1]特判一下
然后我们随便看个例子,10101111010,我们以这样的思路去删除,枚举所有a[0]==a[i] and a[i+1]==a[n-1]的位置, 如果存在直接输出2.
我们来尝试证明一下,
所以我们只需要找到这样的位置即可,否则就输出0
#include <bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int a[N];
int n;
int main(){
cin >> n;
for(int i=0;i<n;i++) cin >> a[i];
if(n==1) cout << -1 << endl;
else if(a[0]==a[n-1]) cout << 1 << endl;
else{
int flag=0;
for(int i=1;i<n-2;i++) if(a[0]==a[i] && a[i+1]==a[n-1]) {flag=1;break;}
if(flag) cout << 2 << endl;
else cout << -1 << endl;
}
return 0;
}