leetcode 1035. 不相交的线

2023.8.25

本题可以转化为:求两数组的最长公共子序列。 进而可以用dp算法解决。 方法类似于这题最长公共子序列 。 代码如下:

cpp 复制代码
class Solution {
public:
    int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {
        vector<vector<int>> dp(nums1.size()+1,vector<int>(nums2.size()+1,0));
        for(int i=1; i<=nums1.size(); i++)
        {
            for(int j=1; j<=nums2.size(); j++)
            {
                if(nums1[i-1] == nums2[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[nums1.size()][nums2.size()];
    }
};
相关推荐
张李浩5 小时前
Leetcode 054螺旋矩阵 采用方向数组解决
算法·leetcode·矩阵
big_rabbit05025 小时前
[算法][力扣101]对称二叉树
数据结构·算法·leetcode
WolfGang0073215 小时前
代码随想录算法训练营 Day11 | 二叉树 part01
数据结构
美好的事情能不能发生在我身上5 小时前
Hot100中的:贪心专题
java·数据结构·算法
2301_821700536 小时前
C++编译期多态实现
开发语言·c++·算法
xixihaha13246 小时前
C++与FPGA协同设计
开发语言·c++·算法
小小怪7506 小时前
C++中的函数式编程
开发语言·c++·算法
xixixiLucky7 小时前
编程入门算法题---小明爬楼梯求爬n层台阶一共多少种方法
算法
剑锋所指,所向披靡!7 小时前
数据结构之线性表
数据结构·算法
m0_672703319 小时前
上机练习第49天
数据结构·算法