首先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;
}