https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/
dp
状态转移方程
dp[i][j] = dp[i-1][j-1] + 1, A[i-1] == B[j-1]
0 , A[i-1] != B[j-1]
class Solution {
public:
int findLength(vector<int>& A, vector<int>& B) {
vector< vector<int> > dp(A.size()+1, vector<int>(B.size() +1,0) );
int ret = -1;
for(int i=1;i<=A.size();i ++){
for(int j=1;j<=B.size();j ++){
if(A[i-1] == B[j-1]){
dp[i][j] = dp[i-1][j-1] + 1;
}else{
dp[i][j] = 0;
}
//cout<<i<<" "<<j;
ret = max(ret,dp[i][j]);
//debug(dp[i][j])
}
}
return ret;
}
};
北京理工2018年夏令营机试题
明天参加2019夏令营复习 练习一下!