1.问题
2.解析
3.设计
4.代码
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (X[i] == Y[j]) {
C[i][j] = C[i - 1][j - 1] + 1;
B[i][j] = 3;//删除两个
}
else {
if (C[i][j - 1] >= C[i - 1][j]) {
C[i][j] = C[i][j - 1];
B[i][j] = 2;//删除y
}
else {
C[i][j] = C[i-1][j];
B[i][j] = 1;//删除x
}
}
}
}
4.分析
时间复杂度为O(mn)
源码地址:https://github.com/xujinyuanky/-/blob/master/LCS