题目:
例题来源:传送
给定一个长度为n(1 <= n <= 1000)的整数序列a[i],求它的一个子序列(子序列即在原序列任意位置删除0或多个元素后的序列),满足如下条件:
1、该序列单调递增;
2、在所有满足条件1的序列中长度是最长的;
问题分析:
最近刚好在学习动态规划,不得不说DP实在太博大精深了,恰好看到这篇那么好的文章,就记录下其中一些例题的解题过程,也方便自己feedback
之前刷的DP都是二维的,今天这道题是一维的(其实这道题也可以转化为用最长公共子串二维来解,但要)
之前有详细讲解过最长公共子序列和最长回文子序列的解法,这里就不赘述了。
在理解完题意后,枚举固然是一种方法,只要把全部的可能性列出来然后逐一检查就能找到答案,但却不是可行的方法,因为2^(1000)是指数爆炸级别的。
嗯,既然枚举这种方法是肯定不行的