国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

java最長(zhǎng)不重復(fù)子串 最長(zhǎng)公共連續(xù)子序列?

最長(zhǎng)公共連續(xù)子序列?最長(zhǎng)公共子序列(LCS)是在一組序列(通常是兩個(gè)序列)中查找最長(zhǎng)子序列的問(wèn)題。這與尋找最長(zhǎng)公共子串的問(wèn)題不同:子串不需要占據(jù)原始序列中的連續(xù)位置。最長(zhǎng)公共子序列問(wèn)題是一個(gè)經(jīng)典的計(jì)算

最長(zhǎng)公共連續(xù)子序列?

最長(zhǎng)公共子序列(LCS)是在一組序列(通常是兩個(gè)序列)中查找最長(zhǎng)子序列的問(wèn)題。這與尋找最長(zhǎng)公共子串的問(wèn)題不同:子串不需要占據(jù)原始序列中的連續(xù)位置。最長(zhǎng)公共子序列問(wèn)題是一個(gè)經(jīng)典的計(jì)算機(jī)科學(xué)問(wèn)題,也是數(shù)據(jù)比較程序(如diff工具)和生物信息學(xué)應(yīng)用的基礎(chǔ)。它還廣泛用于版本控制,例如git,以協(xié)調(diào)文件之間的更改。

公共子序列推導(dǎo)公式?

,最長(zhǎng)的普通suB序列:LCS)

有兩個(gè)序列a[1。。。M] 和B[1。。。N] ,分為子序列a[1]a[1。。2] a[1。。3]... A[1。。M

B[1]B[1。。2] B[1。。3] B[1。。n

依次計(jì)算a中的每個(gè)子序列(從a[1]開(kāi)始)和B中每個(gè)子序列的最長(zhǎng)公共子序列,并記錄在數(shù)組C[M][n]中。C[i][J]表示a[1。。一] 和B[1。。J] 是的。

遞推公式如下:

①C[i][J]=0,i=0或J=0

②C[i][J]=C[i-1][J-1]1,i!=0和j!=0和a[i]=B[J

]③C[i][J]=max{C[i-1][J],C[i][J-1]}i!=0和j!=0和[i

]路徑記錄:如何獲得C[i][J]。根據(jù)遞推公式,C[i][J]來(lái)自三個(gè)來(lái)源:C[i-1][J-1],C[i][J-1][J],C[i][J-1]。如果它是從C[I-1][J-1]導(dǎo)出的,那么a[I]=B[J]是最長(zhǎng)公共子序列中的一個(gè)元素。

您可以設(shè)置數(shù)組P[M][n]來(lái)記錄當(dāng)前C[i][J]的獲取方式。P[M][n]只有三個(gè)值,分別是1、2和3。

構(gòu)造最長(zhǎng)公共子序列:

遞歸檢查P[i][J],初始i=m,J=n

如果P[i][J]=1,記錄C[i][J],遞歸處理P[i-1][J-1

]如果P[i][J]=2,不記錄,遞歸處理P[i-1][J

]如果P[i][J]=3,不記錄,遞歸處理P[i][J-1

]直到i=0或J=0

時(shí)間復(fù)雜度:O(MN)