Longest Common Subsequence

Longest Common Subsequence

1.what is LCS

  • example1:
image-20220412211839073
  • example2:

​ 先从e开始:

image-20220412212021340

​ 先从c开始:

image-20220412212047206

​ 最长的是cdji

  • example3:

​ 先从b开始:

image-20220412212157758

先从a开始:

image-20220412212253365

2.LCS using Recursion

image-20220412213917664

算法思路:

如果都是0返回0

如果相同都往下移动一个

如果不同第一个序列移动下一个或者第二个序列移动到下一个

3.LCS using Memoisation(save time)

image-20220413081254285

4.LCS using Dynamic Programing

example1:

image-20220413082025251 image-20220413082327325

这里多出来一行和一列0是为了初始化开始

一开始的1是因为对角线+1,之后的2是因为对角线+1.

所以相同的字母就是b和d。

example2:

image-20220413082531941 image-20220413083952254

tips:

先看这一行什么与他相等,直接前面的都是用临边俩比大求的,到了与他相等的字母直接加1

最后找谁是最大序列的时候,我们从最大的数往前推,箭头指向来源,最后的答案就是被+1产生的格子

posted @ 2022-04-13 08:44  记录学习Blog  阅读(26)  评论(0编辑  收藏  举报