718. Maximum Length of Repeated Subarray
Medium
Given two integer arrays A
and B
, return the maximum length of an subarray that appears in both arrays.
Example 1:
Input: A: [1,2,3,2,1] B: [3,2,1,4,7] Output: 3 Explanation: The repeated subarray with maximum length is [3, 2, 1].
Note:
- 1 <= len(A), len(B) <= 1000
- 0 <= A[i], B[i] < 100
依次遍历两个数组,找到相同元素后,查询上次相同到现在的长度加一,用max记录最大值。
class Solution { public: int findLength(vector<int>& A, vector<int>& B) { int max = 0; int la = A.size(),lb = B.size(); vector<vector<int> > m(la+1,vector<int>(lb+1,0)); for(int i = 1;i <= la;i++){ for(int j = 1;j <= lb;j++){ if(A[i-1] == B[j-1]){ m[i][j] = m[i-1][j-1] + 1; max = m[i][j] > max ? m[i][j]:max; } } } return max; } };