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()];
    }
};
相关推荐
断剑zou天涯7 小时前
【算法笔记】Manacher算法
java·笔记·算法
monster000w8 小时前
大模型微调过程
人工智能·深度学习·算法·计算机视觉·信息与通信
小小晓.8 小时前
Pinely Round 4 (Div. 1 + Div. 2)
c++·算法
SHOJYS8 小时前
学习离线处理 [CSP-J 2022 山东] 部署
数据结构·c++·学习·算法
biter down8 小时前
c++:两种建堆方式的时间复杂度深度解析
算法
zhishidi8 小时前
推荐算法优缺点及通俗解读
算法·机器学习·推荐算法
WineMonk8 小时前
WPF 力导引算法实现图布局
算法·wpf
2401_837088509 小时前
双端队列(Deque)
算法
ada7_9 小时前
LeetCode(python)108.将有序数组转换为二叉搜索树
数据结构·python·算法·leetcode