From 0ad9a50f645ff6328ea89fdd668bd1f8263dca2b Mon Sep 17 00:00:00 2001 From: Edwenc <45341488+Edwenc@users.noreply.github.com> Date: Tue, 17 Nov 2020 17:35:19 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=901143.=E6=9C=80=E9=95=BF=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E5=AD=90=E5=BA=8F=E5=88=97=E3=80=91=E3=80=90C++=20?= =?UTF-8?q?=E3=80=91=20(#500)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add 1143 C++ version * add comment Co-authored-by: Ed Co-authored-by: labuladong --- ...61\345\255\220\345\272\217\345\210\227.md" | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git "a/\345\212\250\346\200\201\350\247\204\345\210\222\347\263\273\345\210\227/\346\234\200\351\225\277\345\205\254\345\205\261\345\255\220\345\272\217\345\210\227.md" "b/\345\212\250\346\200\201\350\247\204\345\210\222\347\263\273\345\210\227/\346\234\200\351\225\277\345\205\254\345\205\261\345\255\220\345\272\217\345\210\227.md" index 39b13dd..bff1721 100644 --- "a/\345\212\250\346\200\201\350\247\204\345\210\222\347\263\273\345\210\227/\346\234\200\351\225\277\345\205\254\345\205\261\345\255\220\345\272\217\345\210\227.md" +++ "b/\345\212\250\346\200\201\350\247\204\345\210\222\347\263\273\345\210\227/\346\234\200\351\225\277\345\205\254\345\205\261\345\255\220\345\272\217\345\210\227.md" @@ -1,4 +1,4 @@ -# 最长公共子序列 +# 最长公共子序列

@@ -149,6 +149,40 @@ else: ======其他语言代码====== + +[Edwenc](https://github.com/Edwenc) 提供 C++ 代码: + +```C++ +class Solution { +public: + int longestCommonSubsequence(string text1, string text2) { + // 先计算两条字符串的长度 + int m = text1.size(); + int n = text2.size(); + + // 构建dp矩阵 默认初始值0 + // 这里会多扩建一边和一列 + // 因为dp[i][j]的含义是:对于 s1[1..i] 和 s2[1..j],它们的LCS长度是 dp[i][j]。 + // 所以当i或者j为零时 LCS的长度默认为0 + vector< vector > dp ( m+1 , vector ( n+1 , 0 ) ); + + // 状态转移 + // i、j都从1开始遍历 因为下面的操作中都会-1 相当于从0开始 + for ( int i=1 ; i