您的位置:首页 > 其它

Leetcode 718 Maximum Length of Repeated Subarray

2017-11-29 23:55 357 查看
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

就是类似找最长公共子序列的题目,利用动态规划算法。找出对大的那个值,复杂度为o(n^2)。递推式:

if (A[i-1] == B[j-1])
match[i][j] = match[i - 1][j - 1] + 1;


class Solution {
public:
int findLength(vector<int>& A, vector<int>& B) {
int match[1001][1001] = {0};
int max = 0;
for (int i = 0; i <= A.size(); i++) {
for (int j = 0; j <= B.size(); j++) {
if (i == 0 || j == 0) {
match[i][j] = 0;
}
else {
if (A[i-1] == B[j-1]) {
match[i][j] = match[i - 1][j - 1] + 1;
if (match[i][j] > max) {
max = match[i][j];
}
}
}

}
}
return max;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: