|
68674 | 68674 | </span>
|
68675 | 68675 | </a>
|
68676 | 68676 |
|
| 68677 | +</li> |
| 68678 | + |
| 68679 | + <li class="md-nav__item"> |
| 68680 | + <a href="#solution-2" class="md-nav__link"> |
| 68681 | + <span class="md-ellipsis"> |
| 68682 | + Solution 2 |
| 68683 | + </span> |
| 68684 | + </a> |
| 68685 | + |
68677 | 68686 | </li>
|
68678 | 68687 |
|
68679 | 68688 | </ul>
|
@@ -80727,7 +80736,7 @@ <h2 id="solutions">Solutions</h2>
|
80727 | 80736 | <h3 id="solution-1-counting-in-degrees">Solution 1: Counting In-degrees</h3>
|
80728 | 80737 | <p>Based on the problem description, we only need to count the in-degrees of each node and record them in an array $indeg$. If only one node has an in-degree of $0$, then this node is the champion; otherwise, there is no unique champion.</p>
|
80729 | 80738 | <p>The time complexity is $O(n)$, and the space complexity is $O(n)$. Here, $n$ is the number of nodes.</p>
|
80730 |
| -<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> |
| 80739 | +<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">JavaScript</label></div> |
80731 | 80740 | <div class="tabbed-content">
|
80732 | 80741 | <div class="tabbed-block">
|
80733 | 80742 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
@@ -80881,6 +80890,81 @@ <h3 id="solution-1-counting-in-degrees">Solution 1: Counting In-degrees</h3>
|
80881 | 80890 | <span class="p">}</span>
|
80882 | 80891 | </code></pre></div></td></tr></table></div>
|
80883 | 80892 | </div>
|
| 80893 | +<div class="tabbed-block"> |
| 80894 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 80895 | +<span class="normal"> 2</span> |
| 80896 | +<span class="normal"> 3</span> |
| 80897 | +<span class="normal"> 4</span> |
| 80898 | +<span class="normal"> 5</span> |
| 80899 | +<span class="normal"> 6</span> |
| 80900 | +<span class="normal"> 7</span> |
| 80901 | +<span class="normal"> 8</span> |
| 80902 | +<span class="normal"> 9</span> |
| 80903 | +<span class="normal">10</span> |
| 80904 | +<span class="normal">11</span> |
| 80905 | +<span class="normal">12</span> |
| 80906 | +<span class="normal">13</span> |
| 80907 | +<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">findChampion</span><span class="p">(</span><span class="nx">n</span><span class="p">,</span><span class="w"> </span><span class="nx">edges</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80908 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">indeg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span> |
| 80909 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">v</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">edges</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80910 | +<span class="w"> </span><span class="o">++</span><span class="nx">indeg</span><span class="p">[</span><span class="nx">v</span><span class="p">];</span> |
| 80911 | +<span class="w"> </span><span class="p">}</span> |
| 80912 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">[</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">cnt</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="mf">1</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">];</span> |
| 80913 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80914 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">indeg</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80915 | +<span class="w"> </span><span class="o">++</span><span class="nx">cnt</span><span class="p">;</span> |
| 80916 | +<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span> |
| 80917 | +<span class="w"> </span><span class="p">}</span> |
| 80918 | +<span class="w"> </span><span class="p">}</span> |
| 80919 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">cnt</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span> |
| 80920 | +<span class="p">}</span> |
| 80921 | +</code></pre></div></td></tr></table></div> |
| 80922 | +</div> |
| 80923 | +</div> |
| 80924 | +</div> |
| 80925 | +<!-- solution:end --> |
| 80926 | + |
| 80927 | +<!-- solution:start --> |
| 80928 | + |
| 80929 | +<h3 id="solution-2">Solution 2</h3> |
| 80930 | +<div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">TypeScript</label><label for="__tabbed_2_2">JavaScript</label></div> |
| 80931 | +<div class="tabbed-content"> |
| 80932 | +<div class="tabbed-block"> |
| 80933 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span> |
| 80934 | +<span class="normal">2</span> |
| 80935 | +<span class="normal">3</span> |
| 80936 | +<span class="normal">4</span> |
| 80937 | +<span class="normal">5</span> |
| 80938 | +<span class="normal">6</span> |
| 80939 | +<span class="normal">7</span> |
| 80940 | +<span class="normal">8</span> |
| 80941 | +<span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">findChampion</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="nx">edges</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[][])</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span> |
| 80942 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">vertexes</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Set</span><span class="o"><</span><span class="kt">number</span><span class="o">></span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="kr">from</span><span class="p">({</span><span class="w"> </span><span class="nx">length</span><span class="o">:</span><span class="w"> </span><span class="kt">n</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">(</span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">i</span><span class="p">));</span> |
| 80943 | + |
| 80944 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">v</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">edges</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80945 | +<span class="w"> </span><span class="nx">vertexes</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">v</span><span class="p">);</span> |
| 80946 | +<span class="w"> </span><span class="p">}</span> |
| 80947 | + |
| 80948 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">vertexes</span><span class="p">.</span><span class="nx">size</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">vertexes</span><span class="p">[</span><span class="nb">Symbol</span><span class="p">.</span><span class="nx">iterator</span><span class="p">]().</span><span class="nx">next</span><span class="p">().</span><span class="nx">value</span><span class="o">!</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span> |
| 80949 | +<span class="p">}</span> |
| 80950 | +</code></pre></div></td></tr></table></div> |
| 80951 | +</div> |
| 80952 | +<div class="tabbed-block"> |
| 80953 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span> |
| 80954 | +<span class="normal">2</span> |
| 80955 | +<span class="normal">3</span> |
| 80956 | +<span class="normal">4</span> |
| 80957 | +<span class="normal">5</span> |
| 80958 | +<span class="normal">6</span> |
| 80959 | +<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">findChampion</span><span class="p">(</span><span class="nx">n</span><span class="p">,</span><span class="w"> </span><span class="nx">edges</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80960 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">vertexes</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Set</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="kr">from</span><span class="p">({</span><span class="w"> </span><span class="nx">length</span><span class="o">:</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">(</span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">i</span><span class="p">));</span> |
| 80961 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">v</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">edges</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80962 | +<span class="w"> </span><span class="nx">vertexes</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">v</span><span class="p">);</span> |
| 80963 | +<span class="w"> </span><span class="p">}</span> |
| 80964 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">vertexes</span><span class="p">.</span><span class="nx">size</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">vertexes</span><span class="p">[</span><span class="nb">Symbol</span><span class="p">.</span><span class="nx">iterator</span><span class="p">]().</span><span class="nx">next</span><span class="p">().</span><span class="nx">value</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span> |
| 80965 | +<span class="p">}</span> |
| 80966 | +</code></pre></div></td></tr></table></div> |
| 80967 | +</div> |
80884 | 80968 | </div>
|
80885 | 80969 | </div>
|
80886 | 80970 | <!-- solution:end -->
|
@@ -80914,6 +80998,11 @@ <h3 id="solution-1-counting-in-degrees">Solution 1: Counting In-degrees</h3>
|
80914 | 80998 |
|
80915 | 80999 | <nav>
|
80916 | 81000 |
|
| 81001 | + <a href="https://github.com/rain84" class="md-author" title="@rain84"> |
| 81002 | + |
| 81003 | + <img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84"> |
| 81004 | + </a> |
| 81005 | + |
80917 | 81006 | <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
|
80918 | 81007 |
|
80919 | 81008 | <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
|
|
0 commit comments