算法设计与分析实践-作业9-LCS
1. 问题

2. 解析

如上图所示,Zk就是我们所要求出的最大公共子序列。
那么,有以下三种情况:

分别对两种情况(情况二与情况三类似)举例一下以便于理解:


我们可以用数学语言来表示:

3. 设计
算法1:
for i =1 to m
for j=1 to n

这个算法是求出最长公共子序列的长度,但是在求的过程中对删除的节点标记,以便下一个算法回溯。
算法2:

回溯算法:
举个例子以便于理解:


4.分析:
两重循环,故时间复杂度为O(mn)
5. 源码
https://github.com/Ericjin1022/-suanfa