题目链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/
难度:中等
描述:
给两个整数数组 nums1
和 nums2
,返回 两个数组中 公共的 、长度最长的子数组的长度
题解
class Solution:
def findLength(self, nums1: List[int], nums2: List[int]) -> int:
m, n = len(nums1), len(nums2)
r = [[0] * (n+1) for _ in range(m+1)]
# r[i][j]表示nums1[i:], nums2[j:]的最长子数组
ret = 0
for i in range(m-1, -1, -1):
for j in range(n-1, -1, -1):
if nums1[i] == nums2[j]:
r[i][j] = r[i+1][j+1] + 1
ret = max(ret, r[i][j])
return ret