最长公共子序列
题目描述
给定序列 X={x1,xn},序列 Z{z1,zn},是 X 的子序列是指存在一个严格递增下标序列{i1,ik}使得对于所有 j=1,..k 有 zj = xij
例如 Z={B,C,D,B}是序列 X={A,B,C,D,B,A}的子序列,想要的递增下标序列为{2,3,5,7}
穷举法
- 找出 X 字符所有可能的子序列 2^n
- 对于 x 的每一个子序列,判断其是否是 Y 的一个子序列,需要的时间为 m
- 求的总时长 (2^n) * m
动态规划
最优值
当 X 有 i 个元素,Y 有 j 个元素,最长公共子序列的长度 lij
1 | lij = { |
自底向上计算最优值
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 易函123!
评论