#A1125. 最长上升子序列(LIS)
最长上升子序列(LIS)
题目描述
输入一个数组,找到最长的上升子序列(子序列可以不连续)。程序只要求输出最长上升子序列的长度。
例如,数组a = {1, 2, 3, -1, -2, 7, 9},它的最长上升子序列是{1, 2, 3, 7, 9},长度为5。另外,还有一些子序列是上升子序列,比如{1, 2, 3},{-2, 7, 9}等,但都不是最长的。
输入格式
第一行一个正整数n(1≤n≤100),代表数组长度;
第二行n个正整数ai(-100≤ai≤100),代表数组的每个元素。
输出格式
一个整数表示答案。
输入/输出样例
5
9 3 6 2 7
3
样例解释
最长上升子序列是{3, 6, 7},长度3。
说明/提示
时间1000ms,内存256MiB