Skip to main content
  1. Posts/

LeetCode-1035 不相交的线

·1 min·

LeetCode-1035 不相交的线 #

Solution 1 #

要求相同值的连线不能相交, 实质上就是要求按顺序匹配. 这道题本质上就是求最长公共子序列. 代码如下:

class Solution:
    def maxUncrossedLines(self, nums1: List[int], nums2: List[int]) -> int:
        @cache
        def f(i, j):
            if i < 0 or j < 0:
                return 0
            if nums1[i] == nums2[j]:
                return f(i - 1, j - 1) + 1
            return max(f(i - 1, j), f(i, j - 1))
        return f(len(nums1) - 1, len(nums2) - 1)