1035.不相交的线

原来需要转化成‘最长公共子序列的长度’,一下子真不会

class Solution {
public:
    int maxUncrossedLines(vector<int>& v, vector<int>& w) {
        // dp[i][j]:长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j]
        vector<vector<int>>dp(v.size()+1, vector<int>(w.size()+1, 0));
        int result = 0;
        for (int i = 1; i <= v.size(); i++) {
            for (int j = 1; j <= w.size(); j++) {
                if (v[i - 1] == w[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                } else {
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
                }
                if (dp[i][j] > result) result = dp[i][j];
            }
        }
        return result;
    }
};