Skip to content

Commit c484e62

Browse files
committed
deploy: 3768553
1 parent 727d0e5 commit c484e62

File tree

4 files changed

+34
-598
lines changed

4 files changed

+34
-598
lines changed

lcof/26/index.html

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73861,7 +73861,7 @@
7386173861
<li class="md-nav__item">
7386273862
<a href="#_3" class="md-nav__link">
7386373863
<span class="md-ellipsis">
73864-
方法一
73864+
方法一:递归
7386573865
</span>
7386673866
</a>
7386773867

@@ -80419,7 +80419,16 @@ <h2 id="_1">题目描述</h2>
8041980419
<h2 id="_2">解法</h2>
8042080420
<!-- solution:start -->
8042180421

80422-
<h3 id="_3">方法一</h3>
80422+
<h3 id="_3">方法一:递归</h3>
80423+
<p>我们设计一个函数 $\text{dfs}(A, B)$,用于判断树 A 中以节点 A 为根节点的子树是否包含树 B。</p>
80424+
<p>函数 $\text{dfs}(A, B)$ 的执行步骤如下:</p>
80425+
<ol>
80426+
<li>如果树 B 为空,则树 B 是树 A 的子结构,返回 <code>true</code>;</li>
80427+
<li>如果树 A 为空,或者树 A 的根节点的值不等于树 B 的根节点的值,则树 B 不是树 A 的子结构,返回 <code>false</code>;</li>
80428+
<li>判断树 A 的左子树是否包含树 B,即调用 $\text{dfs}(A.left, B)$,并且判断树 A 的右子树是否包含树 B,即调用 $\text{dfs}(A.right, B)$。如果其中有一个函数返回 <code>false</code>,则树 B 不是树 A 的子结构,返回 <code>false</code>;否则,返回 <code>true</code>。</li>
80429+
</ol>
80430+
<p>在函数 <code>isSubStructure</code> 中,我们首先判断树 A 和树 B 是否为空,如果其中有一个为空,则树 B 不是树 A 的子结构,返回 <code>false</code>。然后,我们调用 $\text{dfs}(A, B)$,判断树 A 是否包含树 B。如果是,则返回 <code>true</code>;否则,递归判断树 A 的左子树是否包含树 B,以及树 A 的右子树是否包含树 B。如果其中有一个返回 <code>true</code>,则树 B 是树 A 的子结构,返回 <code>true</code>;否则,返回 <code>false</code>。</p>
80431+
<p>时间复杂度 $O(n \times m)$,空间复杂度 $O(n)$。其中 $n$ 和 $m$ 分别是树 A 和树 B 的节点个数。</p>
8042380432
<div class="tabbed-set tabbed-alternate" data-tabs="1:8"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">C#</label></div>
8042480433
<div class="tabbed-content">
8042580434
<div class="tabbed-block">
@@ -80546,7 +80555,13 @@ <h3 id="_3">方法一</h3>
8054680555
<span class="normal">19</span>
8054780556
<span class="normal">20</span>
8054880557
<span class="normal">21</span>
80549-
<span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
80558+
<span class="normal">22</span>
80559+
<span class="normal">23</span>
80560+
<span class="normal">24</span>
80561+
<span class="normal">25</span>
80562+
<span class="normal">26</span>
80563+
<span class="normal">27</span>
80564+
<span class="normal">28</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
8055080565
<span class="cm"> * Definition for a binary tree node.</span>
8055180566
<span class="cm"> * struct TreeNode {</span>
8055280567
<span class="cm"> * int val;</span>
@@ -80558,13 +80573,19 @@ <h3 id="_3">方法一</h3>
8055880573
<span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
8055980574
<span class="k">public</span><span class="o">:</span>
8056080575
<span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">isSubStructure</span><span class="p">(</span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
80561-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">A</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="o">!</span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
80576+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">A</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="o">!</span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
80577+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span>
80578+
<span class="w"> </span><span class="p">}</span>
8056280579
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">isSubStructure</span><span class="p">(</span><span class="n">A</span><span class="o">-&gt;</span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">isSubStructure</span><span class="p">(</span><span class="n">A</span><span class="o">-&gt;</span><span class="n">right</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="p">);</span>
8056380580
<span class="w"> </span><span class="p">}</span>
8056480581

8056580582
<span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
80566-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
80567-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">A</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">A</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="n">B</span><span class="o">-&gt;</span><span class="n">val</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
80583+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">B</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
80584+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span>
80585+
<span class="w"> </span><span class="p">}</span>
80586+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">A</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">A</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="n">B</span><span class="o">-&gt;</span><span class="n">val</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
80587+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span>
80588+
<span class="w"> </span><span class="p">}</span>
8056880589
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">A</span><span class="o">-&gt;</span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="o">-&gt;</span><span class="n">left</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">A</span><span class="o">-&gt;</span><span class="n">right</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="o">-&gt;</span><span class="n">right</span><span class="p">);</span>
8056980590
<span class="w"> </span><span class="p">}</span>
8057080591
<span class="p">};</span>

lcof/27/index.html

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -73886,15 +73886,6 @@
7388673886
</span>
7388773887
</a>
7388873888

73889-
</li>
73890-
73891-
<li class="md-nav__item">
73892-
<a href="#_4" class="md-nav__link">
73893-
<span class="md-ellipsis">
73894-
方法二
73895-
</span>
73896-
</a>
73897-
7389873889
</li>
7389973890

7390073891
</ul>
@@ -80816,51 +80807,6 @@ <h3 id="_3">方法一:递归</h3>
8081680807
</div>
8081780808
<!-- solution:end -->
8081880809

80819-
<!-- solution:start-->
80820-
80821-
<h3 id="_4">方法二</h3>
80822-
<div class="tabbed-set tabbed-alternate" data-tabs="2:1"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label></div>
80823-
<div class="tabbed-content">
80824-
<div class="tabbed-block">
80825-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
80826-
<span class="normal"> 2</span>
80827-
<span class="normal"> 3</span>
80828-
<span class="normal"> 4</span>
80829-
<span class="normal"> 5</span>
80830-
<span class="normal"> 6</span>
80831-
<span class="normal"> 7</span>
80832-
<span class="normal"> 8</span>
80833-
<span class="normal"> 9</span>
80834-
<span class="normal">10</span>
80835-
<span class="normal">11</span>
80836-
<span class="normal">12</span>
80837-
<span class="normal">13</span>
80838-
<span class="normal">14</span>
80839-
<span class="normal">15</span>
80840-
<span class="normal">16</span>
80841-
<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1"># Definition for a binary tree node.</span>
80842-
<span class="c1"># class TreeNode:</span>
80843-
<span class="c1"># def __init__(self, x):</span>
80844-
<span class="c1"># self.val = x</span>
80845-
<span class="c1"># self.left = None</span>
80846-
<span class="c1"># self.right = None</span>
80847-
80848-
80849-
<span class="k">class</span> <span class="nc">Solution</span><span class="p">:</span>
80850-
<span class="k">def</span> <span class="nf">mirrorTree</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">root</span><span class="p">:</span> <span class="n">TreeNode</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">TreeNode</span><span class="p">:</span>
80851-
<span class="k">if</span> <span class="n">root</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
80852-
<span class="k">return</span> <span class="n">root</span>
80853-
<span class="n">left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mirrorTree</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">left</span><span class="p">)</span>
80854-
<span class="n">right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mirrorTree</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">right</span><span class="p">)</span>
80855-
<span class="n">root</span><span class="o">.</span><span class="n">left</span> <span class="o">=</span> <span class="n">right</span>
80856-
<span class="n">root</span><span class="o">.</span><span class="n">right</span> <span class="o">=</span> <span class="n">left</span>
80857-
<span class="k">return</span> <span class="n">root</span>
80858-
</code></pre></div></td></tr></table></div>
80859-
</div>
80860-
</div>
80861-
</div>
80862-
<!-- solution:end -->
80863-
8086480810
<!-- problem:end -->
8086580811

8086680812

0 commit comments

Comments
 (0)