动态规划
编辑距离

解析
- 题目中能过进行动态变化的有三种方式,插入、删除与修改一个字符。
删 m[i][j] = m[i - 1][j] + 1
改 m[i][j] = m[i - 1][j - 1] + 1
增 m[i][j] = m[i ][j - 1] + 1 - 初始状态:如果没有任意一个能过匹配则需要整个单词长度次数。
m[i][0] = i
m[0][j] = j
代码
class Solution {
public int minDistance(String word1, String word2) {
/*
a[i - 1] -> b[j - 1] k => a[i] -> b[j] k + 1
a[i - 1] -> b[j] k => a[i] -> b[j] k + 1
a[i] -> b[j - 1] k => a[i] -> b[j] k + 1
m[i][0] = i
m[0][j] = j
*/
char[] w1 = word1.toCharArray();
char

这篇博客详细解析了LeetCode中动态规划的应用,特别是关于编辑距离的问题。通过介绍如何进行插入、删除和修改字符来计算两个字符串之间的编辑距离,并提供了初始状态和状态转移方程,帮助理解动态规划的解决思路。
最低0.47元/天 解锁文章
492

被折叠的 条评论
为什么被折叠?



