題目
類型:動態規劃
題意:找到最長公共子序列的長度,不要求連續。
class LCS {
public:
int findLCS(string A, int n, string B, int m) {
vector<vector<int>> dp(n+1, vector<int>(m+1));
int res = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(A[i] == B[j]){
dp[i+1][j+1] = dp[i][j] + 1;
}else
dp[i+1][j+1] = max(dp[i][j+1], dp[i+1][j]);
res = max(res, dp[i+1][j+1]);
}
}
return res;
}
};