算法设计与分析实践-作业9-最长子序列

算法设计与分析实践-作业9-最长子序列

1. 问题

算法设计与分析实践-作业9-最长子序列

2. 解析

首先理解什么是子序列以及子序列的长度,下面给出数学定义:
算法设计与分析实践-作业9-最长子序列
对于下面三个序列:
算法设计与分析实践-作业9-最长子序列
如果我们已知Zk是Xi和Yj的最长公共子序列,我们可以得到如下的结论:
算法设计与分析实践-作业9-最长子序列
为了便于理解上面三条结论,下面给出例子:
算法设计与分析实践-作业9-最长子序列
本节所有的算法都是基于以上三个结论的。
下面是本节的核心递推方程:
算法设计与分析实践-作业9-最长子序列

3. 设计

解决最长子序列问题,我们实际上要解决两个问题:
1.最长子序列的长度
2.根据1回溯输出最长子序列
算法设计与分析实践-作业9-最长子序列
下面给出实例:
算法设计与分析实践-作业9-最长子序列
算法设计与分析实践-作业9-最长子序列

4.分析:

算法设计与分析实践-作业9-最长子序列

5. 源码

https://github.com/Ericjin1022/-suanfa