下到一维的子序列问题,上到编辑距离,都属于子序列问题的范畴。子序列问题一般通过动态规划解决,很少的简单情况也可以使用双指针。基于动态规划解决的子序列问题一般有两种dp方式,两种方式各有优劣,总结其异同点,以此灵活解决碰到的问题:
到某个序号i为止,仅仅是以当前序号i为结尾的,以此进行dp(一维二维) | 到某个序号i为止所有的,不仅仅是以当前序号i为结尾的,可能以i之前其他下标为结尾所有的,以此进行dp(一维二维) | |
是否好寻找递推关系 | 是 | 否 |
时间复杂度,超时 | 时间复杂度高,易超时 | 时间复杂度低,不易超时 |
dp到i时需要哪些元素 | 往往遍历到i是需要将0~i-1所有的一起遍历 | 一般只涉及到i-1下标的元素 |
初始化 | 初始化时不需要考虑前面的元素对后面的影响,一般仅仅比较涉及到的两个元素 | 初始化时就需要考虑前面的元素对后面的影响 |