数据结构与算法专题:LCS问题详解.pptxVIP

  • 0
  • 0
  • 约1.16千字
  • 约 15页
  • 2026-05-12 发布于北京
  • 举报

LogestCommonSequence问题

求ABCBDAB和BDCABA的最长公共子序列

什么是公共子序列?

子序列,就是原序列不改变顺序,但是可以删除元素得到的序列。ABC有个8子序列:

A

B

C

AB

AC

BC

ABC

空字符串

为什么要求公共子序列呢?

ACGGTGTCGTGCTATGCTGATGCTGACTTATATGCTA

CGTTCGGCTATCGTACGTTCTATTCTATGATTTCTAA

LCS=CGTTCGGCTATGCTTCTACTTATTCTA

例子:lcs(ABCBDAB,BDCABA)

ABCBDAB

BDCABA

ABCBDAB

BDCABA

ABCBDAB

BDCABA

LCS=3BDAB,BCAB和BCBA

暴力求解

把他们都求出来

求交集(128X64)

求最大值

暴力求解的复杂度

动态规划

暴力求解是将原问题直接拆分成了最小的粒度,这样做有性能问题(复杂度不是多项式级别,而是指数级别)

思考是否可以通过另外的拆解方法,从而简化计算量——动态规划(DynamicProgrammming)

原问题的拆分-1

例如:BANANA,ATANA

Case1:结尾字母相同

BANANA

ATANA

a最后一个字符都在lcs

BANANA

ATANA

b最后一个字符都不在lcs

这种情况不成立

c最后

文档评论(0)

1亿VIP精品文档

相关文档