mirror of
https://github.com/krahets/hello-algo.git
synced 2026-07-11 15:06:07 +00:00
build
This commit is contained in:
@@ -17,7 +17,7 @@ status: new
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 编辑距离的示例数据 </p>
|
||||
<p align="center"> 图:编辑距离的示例数据 </p>
|
||||
|
||||
**编辑距离问题可以很自然地用决策树模型来解释**。字符串对应树节点,一轮决策(一次编辑操作)对应树的一条边。
|
||||
|
||||
@@ -27,7 +27,7 @@ status: new
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 基于决策树模型表示编辑距离问题 </p>
|
||||
<p align="center"> 图:基于决策树模型表示编辑距离问题 </p>
|
||||
|
||||
**第一步:思考每轮的决策,定义状态,从而得到 $dp$ 表**
|
||||
|
||||
@@ -54,7 +54,7 @@ status: new
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 编辑距离的状态转移 </p>
|
||||
<p align="center"> 图:编辑距离的状态转移 </p>
|
||||
|
||||
根据以上分析,可得最优子结构:$dp[i, j]$ 的最少编辑步数等于 $dp[i, j-1]$ , $dp[i-1, j]$ , $dp[i-1, j-1]$ 三者中的最少编辑步数,再加上本次的编辑步数 $1$ 。对应的状态转移方程为:
|
||||
|
||||
@@ -411,6 +411,8 @@ $$
|
||||
=== "<15>"
|
||||

|
||||
|
||||
<p align="center"> 图:编辑距离的动态规划过程 </p>
|
||||
|
||||
### 状态压缩
|
||||
|
||||
由于 $dp[i,j]$ 是由上方 $dp[i-1, j]$ 、左方 $dp[i, j-1]$ 、左上方状态 $dp[i-1, j-1]$ 转移而来,而正序遍历会丢失左上方 $dp[i-1, j-1]$ ,倒序遍历无法提前构建 $dp[i, j-1]$ ,因此两种遍历顺序都不可取。
|
||||
|
||||
Reference in New Issue
Block a user