当前位置: 首页剑指offer刷题第七期问题详情 【动态规划专题】LeetCode 72. 编辑距离 本问题对应课程链接:剑指offer刷题第七期 要求: 1、请打卡你的解题代码,如果能简单说一下思路则简单说一下思路。 2、给出你代码所用的时间复杂度和空间复杂度
共以下 3 个回答
解题思路
– dp成二维数组,dp[i][j],表示word1的i位的字字符串和word2的j位的子字符串最小编辑距离
– dp[i][j]如何从前序状态变更过来?
– 情形1:如果最后一个字符相同,那么dp[i][j]=dp[i-1][j-1]
– 情形2:如果最后一个字符不相同,还得分情况(那种方式最小就取哪种)
– 情形2.1:如果是可以替换过来,dp[i][j]=dp[i-1]dp[j-1]+1
– 情形2.2:如果是多余的字符,dp[i][j]=dp[i][j-1]+1
– 情形2.3:如果是缺少的字符,dp[i][j]=dp[i-1][j]+1
【题解1】
思路: 递归处理
dp[i][j]表示从长度为i的word1变为长度为j的word2需要的最小步数。
时间复杂度O(Mn),空间复杂度O(Mn)。