1 题目描述
LeetCode
2 解题思路
一道非常简单的基础dp题目,就是用dp[i][j] 表示数组A元素以i结尾, 数组B以j结尾的长度,(即选i和j位置的元素,不是到索引i和索引j为止),那么转移方程是显而易见的:
那么代码随便写写就好了
class Solution {
public:
int findLength(vector<int>& A, vector<int>& B) {
int m = A.size(), n = B.size();
int ans = 0;
vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (A[i - 1] == B[j - 1]) {
dp[i][j] = dp[i - 1][j - 1] + 1;
}
ans = max(ans, dp[i][j]);
}
}
return ans;
}
};