leetcode 718. Maximum Length of Repeated Subarray

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

LCS的改版

int dp[1010][1010];
class Solution {
public:
    int findLength(vector<int>& A, vector<int>& B) {
        int la = A.size();
        int lb = B.size();
        for (int i = 0; i < la; ++i) dp[i][0] = 0;
        for (int i = 0; i < lb; ++i) dp[0][i] = 0;
        int ans = 0;
        for (int i = 1; i <= la; ++i) {
            for (int j = 1; j <= lb; ++j) {
                if (A[i-1] == B[j-1]) dp[i][j] = dp[i-1][j-1] + 1;
                else dp[i][j] = 0;
                ans = max(ans, dp[i][j]);
            }
        }
        return  ans;
    }
};
posted on 2017-10-31 13:42  Beserious  阅读(199)  评论(0编辑  收藏  举报