Longest Common Substring - Maximum Length of Repeated Subarray (Leetcode 718) - Coding Interview Question
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class LongestCommonSubstring {
/*
Code represents longest common substring .
Given two arrays find longest common subarray.
*/
public int findLength(int[] a, int[] b) {
int[][] dp = new int[a.length + 1][b.length + 1];
int max = 0;
for (int i = 1; i <= a.length; i++) {
for (int j = 1; j <= b.length; j++) {
if (a[i - 1] == b[j - 1]) {
dp[i][j] = 1 + dp[i - 1][j - 1];
max = Math.max(dp[i][j], max);
}
}
}
return max;
}
}