DEV Community

Abhishek Chaudhary
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))
Enter fullscreen mode Exit fullscreen mode

Top comments (0)