最长公共子序列c++代码_leetcode(动态规划)-1143. 最长公共子序列
时间: 2023-08-02 10:33:13 浏览: 297
好的,以下是最长公共子序列的C++代码(使用动态规划):
```cpp
class Solution {
public:
int longestCommonSubsequence(string text1, string text2) {
int m = text1.size(), n = text2.size();
vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (text1[i - 1] == text2[j - 1]) {
dp[i][j] = dp[i - 1][j - 1] + 1;
} else {
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
return dp[m][n];
}
};
```
这段代码的时间复杂度为$O(mn)$,其中$m$和$n$分别是两个字符串的长度。
阅读全文