摘要: 给定一个序列,要求求出该序列的最长单调子序列, 即 longest increasing subsequence,这是一个经典的动态规划求解问题。设给定序列为 a[],大小为 n,如何求其最长单调子序列呢?考虑将最长单调子序列的长度作为所求的最优值,最长单调子序列必定以序列a[]中的某一个元素结尾。设序列count[i]为以a[i]结尾的最长单调子序列的长度,那么a[]的LIS的长度就是max{count[i]}, 对所有i。显然此问题具有最优子结构性质,count[0] = 1, count[i] = max{count[j] | 0 <= j < i, a[j] < a[ 阅读全文
posted @ 2011-10-21 14:54 南风又起 阅读(647) 评论(0) 推荐(1)