This commit is contained in:
krahets
2026-07-19 03:42:14 +08:00
parent 01337590a2
commit dbb2fc1d75
656 changed files with 590096 additions and 1010 deletions
@@ -717,6 +717,8 @@
@@ -911,6 +913,34 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/exercises/" class="md-nav__link">
<span class="md-ellipsis">
2.6 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -938,6 +968,8 @@
@@ -1132,6 +1164,34 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/exercises/" class="md-nav__link">
<span class="md-ellipsis">
3.6 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -1159,6 +1219,8 @@
@@ -1353,6 +1415,34 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/exercises/" class="md-nav__link">
<span class="md-ellipsis">
4.6 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -1378,6 +1468,8 @@
@@ -1544,6 +1636,34 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/exercises/" class="md-nav__link">
<span class="md-ellipsis">
5.5 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -1569,6 +1689,8 @@
@@ -1735,6 +1857,34 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/exercises/" class="md-nav__link">
<span class="md-ellipsis">
6.5 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -1764,6 +1914,8 @@
@@ -1986,6 +2138,34 @@
<li class="md-nav__item">
<a href="../../chapter_tree/exercises/" class="md-nav__link">
<span class="md-ellipsis">
7.7 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -2011,6 +2191,8 @@
@@ -2177,6 +2359,34 @@
<li class="md-nav__item">
<a href="../../chapter_heap/exercises/" class="md-nav__link">
<span class="md-ellipsis">
8.5 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -2202,6 +2412,8 @@
@@ -2368,6 +2580,34 @@
<li class="md-nav__item">
<a href="../../chapter_graph/exercises/" class="md-nav__link">
<span class="md-ellipsis">
9.5 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -2397,6 +2637,8 @@
@@ -2619,6 +2861,34 @@
<li class="md-nav__item">
<a href="../../chapter_searching/exercises/" class="md-nav__link">
<span class="md-ellipsis">
10.7 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -2658,6 +2928,8 @@
@@ -3020,6 +3292,34 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/exercises/" class="md-nav__link">
<span class="md-ellipsis">
11.12 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -3047,6 +3347,8 @@
@@ -3241,6 +3543,34 @@
<li class="md-nav__item">
<a href="../../chapter_divide_and_conquer/exercises/" class="md-nav__link">
<span class="md-ellipsis">
12.6 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -3270,6 +3600,8 @@
@@ -3578,6 +3910,34 @@
<li class="md-nav__item">
<a href="../exercises/" class="md-nav__link">
<span class="md-ellipsis">
13.6 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -3609,6 +3969,8 @@
@@ -3859,6 +4221,34 @@
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/exercises/" class="md-nav__link">
<span class="md-ellipsis">
14.8 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -3886,6 +4276,8 @@
@@ -4080,6 +4472,34 @@
<li class="md-nav__item">
<a href="../../chapter_greedy/exercises/" class="md-nav__link">
<span class="md-ellipsis">
15.6 Exercises
</span>
</a>
</li>
</ul>
</nav>
@@ -4469,7 +4889,7 @@
<div class="tabbed-block">
<div class="highlight"><span class="filename">preorder_traversal_i_compact.cpp</span><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="cm">/* Preorder traversal: Example 1 */</span>
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">preOrder</span><span class="p">(</span><span class="n">TreeNode</span><span class="w"> </span><span class="o">*</span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="k">nullptr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nb">nullptr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="o">-&gt;</span><span class="n">val</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">7</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
@@ -4681,7 +5101,7 @@
<div class="tabbed-block">
<div class="highlight"><span class="filename">preorder_traversal_ii_compact.cpp</span><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="cm">/* Preorder traversal: Example 2 */</span>
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">preOrder</span><span class="p">(</span><span class="n">TreeNode</span><span class="w"> </span><span class="o">*</span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="k">nullptr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nb">nullptr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a><span class="w"> </span><span class="c1">// Attempt</span>
@@ -4997,7 +5417,7 @@
<div class="highlight"><span class="filename">preorder_traversal_iii_compact.cpp</span><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a><span class="cm">/* Preorder traversal: Example 3 */</span>
<a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">preOrder</span><span class="p">(</span><span class="n">TreeNode</span><span class="w"> </span><span class="o">*</span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a><span class="w"> </span><span class="c1">// Pruning</span>
<a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="k">nullptr</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">root</span><span class="o">-&gt;</span><span class="n">val</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">root</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nb">nullptr</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">root</span><span class="o">-&gt;</span><span class="n">val</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-27-5" name="__codelineno-27-5" href="#__codelineno-27-5"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-27-6" name="__codelineno-27-6" href="#__codelineno-27-6"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-27-7" name="__codelineno-27-7" href="#__codelineno-27-7"></a><span class="w"> </span><span class="c1">// Attempt</span>
@@ -5628,7 +6048,7 @@
<a id="__codelineno-53-10" name="__codelineno-53-10" href="#__codelineno-53-10"></a>
<a id="__codelineno-53-11" name="__codelineno-53-11" href="#__codelineno-53-11"></a><span class="cm">/* Check if the choice is valid under the current state */</span>
<a id="__codelineno-53-12" name="__codelineno-53-12" href="#__codelineno-53-12"></a><span class="kt">bool</span><span class="w"> </span><span class="nf">isValid</span><span class="p">(</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">TreeNode</span><span class="w"> </span><span class="o">*&gt;</span><span class="w"> </span><span class="o">&amp;</span><span class="n">state</span><span class="p">,</span><span class="w"> </span><span class="n">TreeNode</span><span class="w"> </span><span class="o">*</span><span class="n">choice</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-53-13" name="__codelineno-53-13" href="#__codelineno-53-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">choice</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="k">nullptr</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">choice</span><span class="o">-&gt;</span><span class="n">val</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span>
<a id="__codelineno-53-13" name="__codelineno-53-13" href="#__codelineno-53-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">choice</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="nb">nullptr</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">choice</span><span class="o">-&gt;</span><span class="n">val</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span>
<a id="__codelineno-53-14" name="__codelineno-53-14" href="#__codelineno-53-14"></a><span class="p">}</span>
<a id="__codelineno-53-15" name="__codelineno-53-15" href="#__codelineno-53-15"></a>
<a id="__codelineno-53-16" name="__codelineno-53-16" href="#__codelineno-53-16"></a><span class="cm">/* Update state */</span>