第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,无求解!