mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-28 04:42:48 +08:00
deploy
This commit is contained in:
@ -3373,13 +3373,13 @@
|
||||
<p>你可以在一个字符串中进行三种编辑操作:插入一个字符、删除一个字符、替换字符为任意一个字符。</p>
|
||||
</div>
|
||||
<p>如图 14-27 所示,将 <code>kitten</code> 转换为 <code>sitting</code> 需要编辑 3 步,包括 2 次替换操作与 1 次添加操作;将 <code>hello</code> 转换为 <code>algo</code> 需要 3 步,包括 2 次替换操作和 1 次删除操作。</p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_example.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="编辑距离的示例数据" src="../edit_distance_problem.assets/edit_distance_example.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_example.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="编辑距离的示例数据" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_example.png" /></a></p>
|
||||
<p align="center"> 图 14-27 编辑距离的示例数据 </p>
|
||||
|
||||
<p><strong>编辑距离问题可以很自然地用决策树模型来解释</strong>。字符串对应树节点,一轮决策(一次编辑操作)对应树的一条边。</p>
|
||||
<p>如图 14-28 所示,在不限制操作的情况下,每个节点都可以派生出许多条边,每条边对应一种操作,这意味着从 <code>hello</code> 转换到 <code>algo</code> 有许多种可能的路径。</p>
|
||||
<p>从决策树的角度看,本题的目标是求解节点 <code>hello</code> 和节点 <code>algo</code> 之间的最短路径。</p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_decision_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于决策树模型表示编辑距离问题" src="../edit_distance_problem.assets/edit_distance_decision_tree.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_decision_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于决策树模型表示编辑距离问题" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_decision_tree.png" /></a></p>
|
||||
<p align="center"> 图 14-28 基于决策树模型表示编辑距离问题 </p>
|
||||
|
||||
<h3 id="1">1. 动态规划思路<a class="headerlink" href="#1" title="Permanent link">¶</a></h3>
|
||||
@ -3400,7 +3400,7 @@
|
||||
<li>删除 <span class="arithmatex">\(s[i-1]\)</span> ,则剩余子问题 <span class="arithmatex">\(dp[i-1, j]\)</span> 。</li>
|
||||
<li>将 <span class="arithmatex">\(s[i-1]\)</span> 替换为 <span class="arithmatex">\(t[j-1]\)</span> ,则剩余子问题 <span class="arithmatex">\(dp[i-1, j-1]\)</span> 。</li>
|
||||
</ol>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_state_transfer.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="编辑距离的状态转移" src="../edit_distance_problem.assets/edit_distance_state_transfer.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_state_transfer.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="编辑距离的状态转移" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_state_transfer.png" /></a></p>
|
||||
<p align="center"> 图 14-29 编辑距离的状态转移 </p>
|
||||
|
||||
<p>根据以上分析,可得最优子结构:<span class="arithmatex">\(dp[i, j]\)</span> 的最少编辑步数等于 <span class="arithmatex">\(dp[i, j-1]\)</span>、<span class="arithmatex">\(dp[i-1, j]\)</span>、<span class="arithmatex">\(dp[i-1, j-1]\)</span> 三者中的最少编辑步数,再加上本次的编辑步数 <span class="arithmatex">\(1\)</span> 。对应的状态转移方程为:</p>
|
||||
@ -3765,49 +3765,49 @@ dp[i, j] = dp[i-1, j-1]
|
||||
<div class="tabbed-set tabbed-alternate" data-tabs="2:15"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><input id="__tabbed_2_7" name="__tabbed_2" type="radio" /><input id="__tabbed_2_8" name="__tabbed_2" type="radio" /><input id="__tabbed_2_9" name="__tabbed_2" type="radio" /><input id="__tabbed_2_10" name="__tabbed_2" type="radio" /><input id="__tabbed_2_11" name="__tabbed_2" type="radio" /><input id="__tabbed_2_12" name="__tabbed_2" type="radio" /><input id="__tabbed_2_13" name="__tabbed_2" type="radio" /><input id="__tabbed_2_14" name="__tabbed_2" type="radio" /><input id="__tabbed_2_15" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1"><1></label><label for="__tabbed_2_2"><2></label><label for="__tabbed_2_3"><3></label><label for="__tabbed_2_4"><4></label><label for="__tabbed_2_5"><5></label><label for="__tabbed_2_6"><6></label><label for="__tabbed_2_7"><7></label><label for="__tabbed_2_8"><8></label><label for="__tabbed_2_9"><9></label><label for="__tabbed_2_10"><10></label><label for="__tabbed_2_11"><11></label><label for="__tabbed_2_12"><12></label><label for="__tabbed_2_13"><13></label><label for="__tabbed_2_14"><14></label><label for="__tabbed_2_15"><15></label></div>
|
||||
<div class="tabbed-content">
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step1.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="编辑距离的动态规划过程" src="../edit_distance_problem.assets/edit_distance_dp_step1.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step1.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="编辑距离的动态规划过程" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step1.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step2.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step2" src="../edit_distance_problem.assets/edit_distance_dp_step2.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step2.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step2" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step2.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step3.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step3" src="../edit_distance_problem.assets/edit_distance_dp_step3.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step3.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step3" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step3.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step4.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step4" src="../edit_distance_problem.assets/edit_distance_dp_step4.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step4.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step4" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step4.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step5.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step5" src="../edit_distance_problem.assets/edit_distance_dp_step5.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step5.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step5" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step5.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step6.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step6" src="../edit_distance_problem.assets/edit_distance_dp_step6.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step6.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step6" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step6.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step7.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step7" src="../edit_distance_problem.assets/edit_distance_dp_step7.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step7.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step7" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step7.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step8.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step8" src="../edit_distance_problem.assets/edit_distance_dp_step8.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step8.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step8" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step8.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step9.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step9" src="../edit_distance_problem.assets/edit_distance_dp_step9.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step9.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step9" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step9.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step10.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step10" src="../edit_distance_problem.assets/edit_distance_dp_step10.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step10.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step10" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step10.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step11.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step11" src="../edit_distance_problem.assets/edit_distance_dp_step11.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step11.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step11" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step11.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step12.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step12" src="../edit_distance_problem.assets/edit_distance_dp_step12.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step12.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step12" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step12.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step13.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step13" src="../edit_distance_problem.assets/edit_distance_dp_step13.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step13.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step13" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step13.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step14.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step14" src="../edit_distance_problem.assets/edit_distance_dp_step14.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step14.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step14" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step14.png" /></a></p>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step15.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step15" src="../edit_distance_problem.assets/edit_distance_dp_step15.png" /></a></p>
|
||||
<p><a class="glightbox" href="../edit_distance_problem.assets/edit_distance_dp_step15.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="edit_distance_dp_step15" class="animation-figure" src="../edit_distance_problem.assets/edit_distance_dp_step15.png" /></a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user