public int longestCommonSubsequence(String text1, String text2) {
int n=text1.length(),m=text2.length();
int[][] dp=new int[n+1][m+1];//text1前i个字符与text2前j个字符的最长公共子序列长度
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(text1.charAt(i-1)==text2.charAt(j-1))
dp[i][j]=dp[i-1][j-1]+1;//字符相同时,要在不包含这两个字符的基础上+1
else
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);//不同时,要在不包含其中一个字符的两个情况中取较大值
}
}
return dp[n][m];
}
动态规划算法leetcode.1143
最新推荐文章于 2024-07-25 11:27:31 发布