给定一个长度为
第一行包含整数
第二行包含
输出一个整数,表示最大长度。
7
3 1 2 1 8 5 6
4
前置题目:0898
前置知识:无
本题知识:动态规划-线性DP
子序列是可以不连续的,可以从中抽取,且性质是严格单调递增
动态规划的解题思路,难点在状态的分解
集合的分解方法:所有以第 i 个数结尾的上升子序列,倒数第二个数是什么
- 不存在,整个长度为 1
- 是第 1 个数
- 是第 2 个数
- ...
- 是第 n-1 个数
这些分解的情况不一定都存在,要满足 f[j] < f[i]
最大值就是 f[i], i = 1, 2, ..., n 中的最大值
时间复杂度 = 状态数量 x 转移计算量 = O(n) * O(n) = O(n^2)