编辑距离这道题本质上也是遍历所有问题分支的题目,他有三个选择,插入删除替换
dp[i][j] 这个定义代表 前i个字匹配前j个字符对应的编辑距离
dp[i][j-1] +1 代表 ,在word2后增加一个字符,word1前i个字符转换到word2前j个字符的距离为dp[i][j-1]+1 。这是word2增,
dp[i-1][j]+1 代表 word2 删除
dp[i-1][j-1]+1 替换
/**
* <p>给你两个单词 <code>word1</code> 和 <code>word2</code>, <em>请返回将 <code>word1</code> 转换成 <code>word2</code> 所使用的最少操作数</em> 。</p>
*
* <p>你可以对一个单词进行如下三种操作:</p>
*
* <ul>
* <li>插入一个字符</li>
* <li>删除一个字符</li>
* <li>替换一个字符</li>
* </ul>
*
* <p> </p>
*
* <p><strong>示例 1:</strong></p>
*
* <pre>
* <strong>输入:</strong>word1 = "horse", word2 = "ros"
* <strong>输出:</strong>3
* <strong>解释:</strong>
* horse -> rorse (将 'h' 替换为 'r')
* rorse -> rose (删除 'r')
* rose -> ros (删除 'e')
* </pre>
*
* <p><strong>示例 2:</strong></p>
*
* <pre>
* <strong>输入:</strong>word1 = "intention", word2 = "execution"
* <strong>输出:</strong>5
* <strong>解释:</strong>
* intention -> inention (删除 't')
* inention -> enention (将 'i' 替换为 'e')
* enention -> exention (将 'n' 替换为 'x')
* exention -> exection (将 'n' 替换为 'c')
* exection -> execution (插入 'u')
* </pre>
*
* <p> </p>
*
* <p><strong>提示:</strong></p>
*
* <ul>
* <li><code>0 <= word1.length, word2.length <= 500</code></li>
* <li><code>word1</code> 和 <code>word2</code> 由小写英文字母组成</li>
* </ul>
* <div><div>Related Topics</div><div><li>字符串</li><li>动态规划</li></div></div><br><div><li> 标签:删除,int,距离,编辑,word1,word2,动态,替换,dp From: https://blog.51cto.com/u_12550160/5938891