F[i,j]表示前缀子串A[1-i]与B[1-j]的“最长公共子序列”的长度
F
[
i
,
j
]
=
max
{
F
[
i
−
1
,
j
]
F
[
i
,
j
−
1
]
F
[
i
−
1
,
j
−
1
]
+
1
(
i
f
A
[
i
]
=
B
[
i
]
)
F[i,j]=\max\left\{ \begin{array}{l} F[i-1,j]\\ F[i,j-1] \\ F[i-1,j-1]+1 ~~( if A[i] = B[i]) \end{array} \right.
F[i,j]=max⎩⎨⎧F[i−1,j]F[i,j−1]F[i−1,j−1]+1(ifA[i]=B[i])
public int longestCommonSubsequence(String text1, String text2) { int n1 = text1.length(); int n2 = text2.length(); int[][] dp = new int[2][n2+1]; for (int i = 1; i <= n1; i++) { for (int j = 1; j <= n2;