20分求助
查看原帖
20分求助
1299417
chenziyv123楼主2024/12/27 18:02
#include<bits/stdc++.h>
using namespace std;
int t,n;
bool ks=true;
int main()
{
	cin>>t;
	while(t--)
	{
	    cin>>n;
	    vector<int>a(n+1);
	    vector<int>b(n+1);
		for(int i=1;i<=n;i++)
		{
			a[i]=0;
		    b[i]=0;
		}
		
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			b[a[i]]++;
			if(b[a[i]]==2)
			{
				ks=false;
			}
		}
		if(a[1]==a[n])
		{
			cout<<1<<endl;//头等尾 
			continue; 
		}
		else if((b[a[1]]>=2)||(b[a[n]]>=2))
		{
			cout<<2<<endl;//单头or单尾
			continue; 
		}
		else if(ks==false)
		{
			cout<<3<<endl;//无特殊 
			continue;
		}
		else
		{
			cout<<n<<endl;//无相等 
			continue;
		}
	}
	return 0;
}
2024/12/27 18:02
加载中...