求救
  • 板块灌水区
  • 楼主Leaf59
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/29 21:58
  • 上次更新2024/9/30 11:37:20
查看原帖
求救
1401647
Leaf59楼主2024/9/29 21:58

第6题 最长回文数
输入一个包含N 个正整数的数组,求出这个数组中包含的最长的回文数组是什么, 如果有相同长度的最长回文数,输出最靠前的一个。

输入格式 第一行1 个正整数:N,N的范围在[1,1000]。
第二行 N 个不同的正整数:范围在[1,10000]。

输出格式: 多个正整数, 表示数组中最长的回文数组。
输入/输出例子1 输入:
9
2 6 1 9 7 9 1 5 3
输出:
1 9 7 9 1

#include<bits/stdc++.h>
using namespace std;
int main(){
    
    int n,arr[1005],app[1005],len=0;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>arr[i];
    for(int i=1;i<n;i++){
        for(int j=i+1;j<=n;j++){
            bool f=true;
        	for(int k=i,m=j;k<m;k++,m--){
        		if(arr[k]!=arr[m]){
        			f=false;
        			break;
				}
			}
			if(f&&len<j-i){
				for(int k=i,d=1;k<=j;k++,d++){
					app[d]=arr[k];
				}
				len=j-i+1;
			}
		}
	}
	for(int i=1;i<=len;i++) cout<<app[i]<<" "; 
    return 0;
}

60分,无TLE,无求解!

2024/9/29 21:58
加载中...