Leecode 1143.最长公共子序列
题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目类型:最长子序列
class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int m = text1.size(), n = text2.size();// dp[i][j]代表从0~i-1和0~j-1部分的最长公共子序列vector<vector<int>> dp(m + 1, vector<int>(n + 1));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];}
};
Leecode 1035.不相交的线
题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目类型:最长子序列
class Solution {
public:int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {int m = nums1.size(), n = nums2.size();vector<vector<int>> dp(m + 1, vector<int>(n + 1));for (int i = 1; i <= m; ++i) {for (int j = 1; j <= n; ++j) {if (nums1[i - 1] == nums2[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1;else dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);}}return dp[m][n];}
};