第21222题 单选
动态规划求解最长公共子序列长度的代码中,横线处应填入哪项

下面程序使用动态规划求两个字符串的最长公共子序列(LCS)长度,横线处应填入的是( )。

#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int lcs_len(const string &a, const string &b) {
    int n = (int)a.size(), m = (int)b.size();
    vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            if (a[i - 1] == b[j - 1])
                dp[i][j] = dp[i - 1][j - 1] + 1;
            else
                ________; // 在此处填入选项
    return dp[n][m];
}
A

dp[i][j] = dp[i - 1][j] + dp[i][j - 1];

B

dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]);

C

dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);

D

dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + 1;