美文网首页
LeetCode 1035. 不相交的线

LeetCode 1035. 不相交的线

作者: 草莓桃子酪酪 | 来源:发表于2022-08-13 09:33 被阅读0次
题目

在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足:

  • nums1[i] == nums2[j]
  • 且绘制的直线不与任何其他连线(非水平线)相交。

请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。
以这种方法绘制线条,并返回可以绘制的最大连线数。

例:
输入:nums1 = [1,4,2], nums2 = [1,2,4]
输出:2
解释:可以画出两条不交叉的线,如上图所示。
但无法画出第三条不相交的直线,因为从 nums1[1]=4 到 nums2[2]=4 的直线将与从 nums1[2]=2 到 nums2[1]=2 的直线相交。

方法:动态规划

思路同 1143. 最长公共子序列
根据直线需要满足的两个条件我们可以推断出,两组连线成功的数字需在相对顺序上相同,这样才能实现直线的不相交。那么根据子序列的定义:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串,此时将转化成求两个数组的最长公共子序列

class Solution(object):
    def maxUncrossedLines(self, nums1, nums2):
        dp = [[0] * (len(nums2)+1) for row in range(len(nums1)+1)]
        for i in range(1, len(nums1)+1):
            for j in range(1, len(nums2)+1):
                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[-1][-1]
参考

代码相关:https://programmercarl.com/1035.%E4%B8%8D%E7%9B%B8%E4%BA%A4%E7%9A%84%E7%BA%BF.html

相关文章

  • LeetCode 1035. 不相交的线

    题目 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 ...

  • 1035. 不相交的线(Python)

    难度:★★★☆☆类型:数组方法:动态规划 题目 力扣链接请移步本题传送门[https://leetcode-cn....

  • 相交线

    ​尽管昨天看完演唱会后到家已是深夜,但今早仍旧是5:40起床,因为今天有一场重要的毕业典礼:90天线上时间管理践行...

  • 相交线

    你已经走了 我还停留在原地 不是我不想前进 我想伴你一起 怕的是 像两条相交线 越走越远

  • 相交线

    确实,看到曾经以为会一直走下去的朋友,在某一天突然发现你看不了她的空间说说时。我承认我那时是玻璃心。为什么我还没...

  • 相交线

    人们都说爱情最可怕的是平行线 你就在我的眼前 而我却始终无法踏出那一步 就那样静静的相望 咫尺天涯 我认为爱情中最...

  • 相交线

    相交线 fin) *过客 后续 第一次遇到完全空闲的休假,何念之有一点不习惯。他在家里睡了一天,看了一天电影,感觉...

  • 相交线

    你是老师,我是学生。课上相遇,课后相离。最初,互不相识;最后,归于陌路。 昨天是520,粉红色是的日子。看着街上一...

  • 相交线

    “我怕我没有机会,跟你说一声再见” 打开网易云点开张震岳的《再见》,望着窗外雾蒙蒙的天,心里觉得有些感慨。 承蒙老...

  • 相交线

    风儿不曾为草木驻足 只是摇曳的枝条证明风的来过 落花与枯萎是草木对风无声的控诉 风吹过,没有短暂的停留 似极了那个...

网友评论

      本文标题:LeetCode 1035. 不相交的线

      本文链接:https://www.haomeiwen.com/subject/fqmowrtx.html