## DEV Community

Abhishek Chaudhary

Posted on

# Maximum Length of Repeated Subarray

Given two integer arrays `nums1` and `nums2`, return the maximum length of a subarray that appears in both arrays.

Example 1:

Input: nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
Output: 3
Explanation: The repeated subarray with maximum length is [3,2,1].

Example 2:

Input: nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]
Output: 5

Constraints:

• `1 <= nums1.length, nums2.length <= 1000`
• `0 <= nums1[i], nums2[i] <= 100`

SOLUTION:

``````class Solution:
def LongestCommonSubarray(self, X, Y, m, n):
common = [[0 for k in range(n+1)] for l in range(m+1)]
result = 0
for i in range(m + 1):
for j in range(n + 1):
if (i == 0 or j == 0):
common[i][j] = 0
elif (X[i-1] == Y[j-1]):
common[i][j] = common[i-1][j-1] + 1
result = max(result, common[i][j])
else:
common[i][j] = 0
return result

def findLength(self, nums1: List[int], nums2: List[int]) -> int:
return self.LongestCommonSubarray(nums1, nums2, len(nums1), len(nums2))
``````