AcWing 每日一题 3697. 回文子序列

原题链接
在这里插入图片描述
数据范围
1≤T≤100,
3≤n≤5000,
1≤ai≤n,
一个测试点内所有 n 的和不超过 5000。

输入样例:
5
3
1 2 1
5
1 2 2 3 2
3
1 1 2
4
1 2 2 1
10
1 1 2 2 3 3 4 4 5 5
输出样例:
YES
YES
NO
YES
NO


注意,这里是回文子序列,只需要有两个相等的数不相邻即可,然后中间随便选一个数,就能构成回文子序列

AC代码:

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
const int maxn=5003;
int a[maxn];
int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		int n;	
		bool flag=0;
		scanf("%d",&n);
		memset(a,0,sizeof(a));
		int pre=0;
		for(int i=1;i<=n;++i){
			int x;
			scanf("%d",&x);
			if(!a[x])a[x]=i;
			if(a[x]&&i-a[x]>1)flag=1;
		}
		if(flag)printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值