@@ -86641,7 +86641,7 @@ <h3 id="_3">方法一:统计入度和出度</h3>
8664186641<p>接下来,遍历每个节点 $c$,如果存在 $ind[c]$ 等于节点总数减去 $1$,并且 $outd[c]=0$,说明存在满足条件的交通枢纽,返回 $c$。</p>
8664286642<p>否则遍历结束,返回 $-1$。</p>
8664386643<p>时间复杂度 $O(n + m)$,空间复杂度 $O(n)$。其中 $n$ 和 $m$ 分别是节点数量以及路径的数量。</p>
86644- <div class="tabbed-set tabbed-alternate" data-tabs="1:5 "><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" /><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></div>
86644+ <div class="tabbed-set tabbed-alternate" data-tabs="1:6 "><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" />< 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">Swift </label></div>
8664586645<div class="tabbed-content">
8664686646<div class="tabbed-block">
8664786647<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -86877,6 +86877,68 @@ <h3 id="_3">方法一:统计入度和出度</h3>
8687786877<span class="p">}</span>
8687886878</code></pre></div></td></tr></table></div>
8687986879</div>
86880+ <div class="tabbed-block">
86881+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86882+ <span class="normal"> 2</span>
86883+ <span class="normal"> 3</span>
86884+ <span class="normal"> 4</span>
86885+ <span class="normal"> 5</span>
86886+ <span class="normal"> 6</span>
86887+ <span class="normal"> 7</span>
86888+ <span class="normal"> 8</span>
86889+ <span class="normal"> 9</span>
86890+ <span class="normal">10</span>
86891+ <span class="normal">11</span>
86892+ <span class="normal">12</span>
86893+ <span class="normal">13</span>
86894+ <span class="normal">14</span>
86895+ <span class="normal">15</span>
86896+ <span class="normal">16</span>
86897+ <span class="normal">17</span>
86898+ <span class="normal">18</span>
86899+ <span class="normal">19</span>
86900+ <span class="normal">20</span>
86901+ <span class="normal">21</span>
86902+ <span class="normal">22</span>
86903+ <span class="normal">23</span>
86904+ <span class="normal">24</span>
86905+ <span class="normal">25</span>
86906+ <span class="normal">26</span>
86907+ <span class="normal">27</span>
86908+ <span class="normal">28</span>
86909+ <span class="normal">29</span>
86910+ <span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
86911+ <span class="w"> </span><span class="kd">func</span><span class="w"> </span><span class="nf">transportationHub</span><span class="p">(</span><span class="kc">_</span><span class="w"> </span><span class="n">path</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="nb">Int</span><span class="p">]])</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
86912+ <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">inDegree</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">[</span><span class="nb">Int</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">]()</span>
86913+ <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">outDegree</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">[</span><span class="nb">Int</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">]()</span>
86914+ <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">nodeSet</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Set</span><span class="p"><</span><span class="nb">Int</span><span class="p">>()</span>
86915+ <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">visitedEdges</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Set</span><span class="p"><</span><span class="nb">String</span><span class="p">>()</span>
86916+
86917+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="p">{</span>
86918+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
86919+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
86920+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nv">edgeKey</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"</span><span class="si">\(</span><span class="n">a</span><span class="si">)</span><span class="s">-</span><span class="si">\(</span><span class="n">b</span><span class="si">)</span><span class="s">"</span>
86921+
86922+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">!</span><span class="n">visitedEdges</span><span class="p">.</span><span class="bp">contains</span><span class="p">(</span><span class="n">edgeKey</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86923+ <span class="w"> </span><span class="n">visitedEdges</span><span class="p">.</span><span class="bp">insert</span><span class="p">(</span><span class="n">edgeKey</span><span class="p">)</span>
86924+ <span class="w"> </span><span class="n">nodeSet</span><span class="p">.</span><span class="bp">insert</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
86925+ <span class="w"> </span><span class="n">nodeSet</span><span class="p">.</span><span class="bp">insert</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
86926+ <span class="w"> </span><span class="n">inDegree</span><span class="p">[</span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
86927+ <span class="w"> </span><span class="n">outDegree</span><span class="p">[</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
86928+ <span class="w"> </span><span class="p">}</span>
86929+ <span class="w"> </span><span class="p">}</span>
86930+
86931+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">node</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nodeSet</span><span class="w"> </span><span class="p">{</span>
86932+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">inDegree</span><span class="p">[</span><span class="n">node</span><span class="p">,</span><span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="n">nodeSet</span><span class="p">.</span><span class="bp">count</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">outDegree</span><span class="p">[</span><span class="n">node</span><span class="p">,</span><span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
86933+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">node</span>
86934+ <span class="w"> </span><span class="p">}</span>
86935+ <span class="w"> </span><span class="p">}</span>
86936+
86937+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span>
86938+ <span class="w"> </span><span class="p">}</span>
86939+ <span class="p">}</span>
86940+ </code></pre></div></td></tr></table></div>
86941+ </div>
8688086942</div>
8688186943</div>
8688286944<!-- solution:end -->
@@ -86910,6 +86972,11 @@ <h3 id="_3">方法一:统计入度和出度</h3>
8691086972
8691186973 <nav>
8691286974
86975+ <a href="https://github.com/klever34" class="md-author" title="@klever34">
86976+
86977+ <img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
86978+ </a>
86979+
8691386980 <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8691486981
8691586982 <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments