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))
Top comments (0)