[LeetCode]Maximum Length of Repeated Subarray

来源:互联网 发布:淘宝卖家流量钱包充值 编辑:程序博客网 时间:2024/06/03 15:43

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

这是一道典型的动态规划题目,规律如下:
这里写图片描述
具体solution的思想可见动态规划解最长公共子序列问题。

class Solution {public:    int findLength(vector<int>& A, vector<int>& B) {        int temp[1001][1001],max = 0;        for(int i = 0; i < A.size(); i++){            for(int j = 0; j < B.size(); j++){                if(A[i] == B[j]){                    temp[i+1][j+1] = temp[i][j] + 1;                }else{                    temp[i+1][j+1] = 0;                }                max = max>temp[i+1][j+1]?max:temp[i+1][j+1];            }        }        return max;    }};
原创粉丝点击