@@ -86641,7 +86641,7 @@ <h3 id="_3">方法一:统计入度和出度</h3>
86641
86641
<p>接下来,遍历每个节点 $c$,如果存在 $ind[c]$ 等于节点总数减去 $1$,并且 $outd[c]=0$,说明存在满足条件的交通枢纽,返回 $c$。</p>
86642
86642
<p>否则遍历结束,返回 $-1$。</p>
86643
86643
<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>
86645
86645
<div class="tabbed-content">
86646
86646
<div class="tabbed-block">
86647
86647
<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>
86877
86877
<span class="p">}</span>
86878
86878
</code></pre></div></td></tr></table></div>
86879
86879
</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>
86880
86942
</div>
86881
86943
</div>
86882
86944
<!-- solution:end -->
@@ -86910,6 +86972,11 @@ <h3 id="_3">方法一:统计入度和出度</h3>
86910
86972
86911
86973
<nav>
86912
86974
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
+
86913
86980
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
86914
86981
86915
86982
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments