1class Solution:2def maxUncrossedLines(self, nums1: List[int], nums2: List[int]) -> int:34@lru_cache(None)5def dp(a, b):6if a >= len(nums1) or b >= len(nums2):7return 08if nums1[a] == nums2[b]:9return 1 + dp(a + 1, b + 1)10else:11return max(dp(a + 1, b), dp(a, b + 1))1213return dp(0, 0)