最长上升子序列

来源:互联网 发布:怎么看台湾网站知乎 编辑:程序博客网 时间:2024/06/05 04:24

输入数据
输入的第一行是序列的长度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);    }}
0 0
原创粉丝点击