1035.不相交的线
链接:1035.不相交的线
难度:Medium
标签:数组、动态规划
简介:以这种方法绘制线条,并返回可以绘制的最大连线数。
题解 1 - python
- 编辑时间:2024-08-11
- 执行用时:169ms
- 内存消耗:23.7MB
- 编程语言:python
- 解法介绍:记忆话dfs遍历所有不想交的可能
class Solution:
def maxUncrossedLines(self, nums1: List[int], nums2: List[int]) -> int:
map2 = defaultdict(list)
for i, num in enumerate(nums2): map2[num].append(i)
@cache
def run(idx: int, last: int) -> int:
if idx == len(nums1): return 0
res = run(idx + 1, last)
for next_idx in map2[nums1[idx]]:
if next_idx <= last: continue
res = max(res, run(idx + 1, next_idx) + 1)
return res
return run(0, -1)