简单dp就行了:
class Solution {
public:
int dp[1010][1010];
int findLength(vector<int>& A, vector<int>& B) {
int m = A.size(), n = B.size(), res = 0;
if(m == 0 || n == 0) return res;
for(int i = 0; i < m; ++i){
for(int j = 0; j < n; ++j){
if(A[i] == B[j]){
dp[i+1][j+1] = 1 + dp[i][j];
res = max(res, dp[i+1][j+1]);
}
}
}
return res;
}
};