LIS(Longest Increasing Subsequence)是一类典型的动态规划类问题,简化描述如下: 给定$N(n) = \{1,2...,n\}$的一个排列$P(n)$,求$P(n)$中最长上升子列的长度. 譬如令$n = 6$, $N(6) = \{1,2,3,4,5,6\}$,$P(n) = \{1,4,2,5,3,6\}$. 容易发现$LIS(P(n)) = \{1,2,3,6\} or \{1,4,5,6\}...$. 起初我们拿到问题的思路是这样的,我们试着先分析序列的前…