#刷题交流# 打卡《DNA序列编辑距离》
刷题展示:使用一个二维数组 dp,其中 dp[i][j] 表示将 dna1 的前 i 个字符转换成 dna2 的前 j 个字符所需的最少编辑步骤。dp[0][j] 表示将空字符串转换成 dna2 的前 j 个字符,需要 j 次插入操作。dp[i][0] 表示将 dna1 的前 i 个字符转换成空字符串,需要 i 次删除操作。状态转移:如果 dna1[i-1] == dna2[j-1],则 dp[i][j] = dp[i-1][j-1],因为不需要任何编辑操作。否则,dp[i][j] 可以通过以下三种操作中的最小值得到:插入:dp[i][j-1] + 1删除:dp[i-1][j] + 1替换:dp[i-1][j-1] + 1最终结果:dp[m][n] 就是将 dna1 转换成 dna2 所需的最少编辑步骤,其中 m 和 n 分别是 dna1 和 dna2 的长度。
刷题展示:使用一个二维数组 dp,其中 dp[i][j] 表示将 dna1 的前 i 个字符转换成 dna2 的前 j 个字符所需的最少编辑步骤。dp[0][j] 表示将空字符串转换成 dna2 的前 j 个字符,需要 j 次插入操作。dp[i][0] 表示将 dna1 的前 i 个字符转换成空字符串,需要 i 次删除操作。状态转移:如果 dna1[i-1] == dna2[j-1],则 dp[i][j] = dp[i-1][j-1],因为不需要任何编辑操作。否则,dp[i][j] 可以通过以下三种操作中的最小值得到:插入:dp[i][j-1] + 1删除:dp[i-1][j] + 1替换:dp[i-1][j-1] + 1最终结果:dp[m][n] 就是将 dna1 转换成 dna2 所需的最少编辑步骤,其中 m 和 n 分别是 dna1 和 dna2 的长度。
展开
评论
3