mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-26 19:41:26 +08:00
deploy
This commit is contained in:
@@ -4030,7 +4030,7 @@ dp[i, j] = \min(dp[i-1, j], dp[i, j-1]) + grid[i, j]
|
||||
<p><a class="glightbox" href="../dp_solution_pipeline.assets/min_path_sum_dfs.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="暴力搜尋遞迴樹" class="animation-figure" src="../dp_solution_pipeline.assets/min_path_sum_dfs.png" /></a></p>
|
||||
<p align="center"> 圖 14-14 暴力搜尋遞迴樹 </p>
|
||||
|
||||
<p>每個狀態都有向下和向右兩種選擇,從左上角走到右下角總共需要 <span class="arithmatex">\(m + n - 2\)</span> 步,所以最差時間複雜度為 <span class="arithmatex">\(O(2^{m + n})\)</span> ,其中 <span class="arithmatex">\(n\)</span> 和 <span class="arithmatex">\(m\)</span> 分別為網格的行數和列數。請注意,這種計算方式未考慮臨近網格邊界的情況,當到達網路邊界時只剩下一種選擇,因此實際的路徑數量會少一些。</p>
|
||||
<p>每個狀態都有向下和向右兩種選擇,從左上角走到右下角總共需要 <span class="arithmatex">\(m + n - 2\)</span> 步,所以最差時間複雜度為 <span class="arithmatex">\(O(2^{m + n})\)</span> ,其中 <span class="arithmatex">\(n\)</span> 和 <span class="arithmatex">\(m\)</span> 分別為網格的行數和列數。請注意,這種計算方式未考慮臨近網格邊界的情況,當到達網格邊界時只剩下一種選擇,因此實際的路徑數量會少一些。</p>
|
||||
<h3 id="2">2. 方法二:記憶化搜尋<a class="headerlink" href="#2" title="Permanent link">¶</a></h3>
|
||||
<p>我們引入一個和網格 <code>grid</code> 相同尺寸的記憶串列 <code>mem</code> ,用於記錄各個子問題的解,並將重疊子問題進行剪枝:</p>
|
||||
<div class="tabbed-set tabbed-alternate" data-tabs="2:14"><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" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python</label><label for="__tabbed_2_2">C++</label><label for="__tabbed_2_3">Java</label><label for="__tabbed_2_4">C#</label><label for="__tabbed_2_5">Go</label><label for="__tabbed_2_6">Swift</label><label for="__tabbed_2_7">JS</label><label for="__tabbed_2_8">TS</label><label for="__tabbed_2_9">Dart</label><label for="__tabbed_2_10">Rust</label><label for="__tabbed_2_11">C</label><label for="__tabbed_2_12">Kotlin</label><label for="__tabbed_2_13">Ruby</label><label for="__tabbed_2_14">Zig</label></div>
|
||||
|
||||
Reference in New Issue
Block a user