白银市网站建设_网站建设公司_HTTPS_seo优化
2026/1/18 15:50:17 网站建设 项目流程

代码随想录-动态规划Part12

115.不同的子序列

class Solution { public int numDistinct(String s, String t) { int[][] dp = new int[s.length() + 1][t.length() + 1]; for (int i = 0; i < s.length() + 1; i++) { dp[i][0] = 1; } for (int i = 1; i < s.length() + 1; i++) { for (int j = 1; j < t.length() + 1; j++) { if (s.charAt(i - 1) == t.charAt(j - 1)) { dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]; }else{ dp[i][j] = dp[i - 1][j]; } } } return dp[s.length()][t.length()]; } }

583. 两个字符串的删除操作

class Solution { public int minDistance(String word1, String word2) { char[] char1 = word1.toCharArray(); char[] char2 = word2.toCharArray(); int len1 = char1.length; int len2 = char2.length; int dp[][] = new int [len1 + 1][len2 + 1]; for(int i = 1; i <= len1; i++){ for(int j = 1; j <= len2; j++){ if(char1[i - 1] == char2[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1; else dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]); } } return len1 + len2 - (2 * dp[len1][len2]); } }

72. 编辑距离

class Solution { public int minDistance(String word1, String word2) { int m = word1.length(); int n = word2.length(); int[][] dp = new int[m + 1][n + 1]; // 初始化 for (int i = 1; i <= m; i++) { dp[i][0] = i; } for (int j = 1; j <= n; j++) { dp[0][j] = j; } for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { if (word1.charAt(i - 1) == word2.charAt(j - 1)) { dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = Math.min(Math.min(dp[i - 1][j - 1], dp[i][j - 1]), dp[i - 1][j]) + 1; } } } return dp[m][n]; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询