标签:
输入数据
输入的第一行是序列的长度N (1 <= N <= 1000)。第二行给出序列中的N 个整数,这些整数的取值范围都在0 到10000。
输出要求
最长上升子序列的长度。
输入样例
7
1 7 3 5 9 4 8
输出样例
4
import java.util.Scanner;
public class TheMaxRiseSeries {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int N=in.nextInt();//输入的序列的长度
int a[]=new int[N+10];
int aMaxLen[]=new int[N+10];
aMaxLen[1]=1;
for (int i = 1; i <=N; i++) {
a[i]=in.nextInt();
}
for (int i = 2; i <=N; i++) {
int sign=0;
for (int j = 1; j <i; j++) {
if (a[i]>a[j]) {
sign=aMaxLen[j];
}
}
aMaxLen[i]=sign+1;
}
int nMax=-1;
for (int i = 1; i <=N; i++) {
nMax=Math.max(nMax, aMaxLen[i]);
}
System.out.println(nMax);
}
}
标签:
原文地址:http://blog.csdn.net/a819721810/article/details/44902907