来源:牛客网 2016校招真题在线编程
知识点:动态规划
思路:《算法设计技巧与分析(沙特版)》动态规划
import java.util.*;
public class LCS {
public int findLCS(String A, int n, String B, int m) {
// write code here
int[][] L = new int[n+1][m+1];
for(int i=0;i<=n;i++){
L[i][0]=0;
}
for(int i=0;i<=m;i++){
L[0][i]=0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(A.charAt(i-1)==B.charAt(j-1)){
L[i][j] = L[i-1][j-1]+1;
}else{
L[i][j] = Math.max(L[i-1][j],L[i][j-1]);
}
}
}
return L[n][m];
}
}
结果:通过,运行时间:90ms,占用内存:12280k
来源:CSDN
作者:_CoCoNutNut_
链接:https://blog.csdn.net/weixin_42319408/article/details/103496792