@@ -84208,7 +84208,7 @@ <h3 id="_3">方法一:排序</h3>
8420884208
8420984209<h3 id="_4">方法二:计数</h3>
8421084210<p>时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 是数组 <code>skill</code> 的长度。</p>
84211- <div class="tabbed-set tabbed-alternate" data-tabs="2:4 "><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label></div>
84211+ <div class="tabbed-set tabbed-alternate" data-tabs="2:6 "><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" />< div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">JavaScript </label></div>
8421284212<div class="tabbed-content">
8421384213<div class="tabbed-block">
8421484214<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -84390,6 +84390,94 @@ <h3 id="_4">方法二:计数</h3>
8439084390<span class="p">}</span>
8439184391</code></pre></div></td></tr></table></div>
8439284392</div>
84393+ <div class="tabbed-block">
84394+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
84395+ <span class="normal"> 2</span>
84396+ <span class="normal"> 3</span>
84397+ <span class="normal"> 4</span>
84398+ <span class="normal"> 5</span>
84399+ <span class="normal"> 6</span>
84400+ <span class="normal"> 7</span>
84401+ <span class="normal"> 8</span>
84402+ <span class="normal"> 9</span>
84403+ <span class="normal">10</span>
84404+ <span class="normal">11</span>
84405+ <span class="normal">12</span>
84406+ <span class="normal">13</span>
84407+ <span class="normal">14</span>
84408+ <span class="normal">15</span>
84409+ <span class="normal">16</span>
84410+ <span class="normal">17</span>
84411+ <span class="normal">18</span>
84412+ <span class="normal">19</span>
84413+ <span class="normal">20</span>
84414+ <span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">dividePlayers</span><span class="p">(</span><span class="nx">skill</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>
84415+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">[</span><span class="nx">sum</span><span class="p">,</span><span class="w"> </span><span class="nx">res</span><span class="p">,</span><span class="w"> </span><span class="nx">map</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Map</span><span class="o"><</span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="o">></span><span class="p">()];</span>
84416+
84417+ <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="nx">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">skill</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
84418+ <span class="w"> </span><span class="nx">sum</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span>
84419+ <span class="w"> </span><span class="nx">map</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">x</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="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">);</span>
84420+ <span class="w"> </span><span class="p">}</span>
84421+ <span class="w"> </span><span class="nx">sum</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="nx">skill</span><span class="p">.</span><span class="nx">length</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
84422+
84423+ <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="p">[</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">c</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">map</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
84424+ <span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">complement</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">sum</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span>
84425+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="nx">map</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">complement</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="o">!==</span><span class="w"> </span><span class="nx">c</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
84426+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">x</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">complement</span><span class="p">)</span><span class="w"> </span><span class="nx">c</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
84427+
84428+ <span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">complement</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">c</span><span class="p">;</span>
84429+ <span class="w"> </span><span class="nx">map</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span>
84430+ <span class="w"> </span><span class="nx">map</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">complement</span><span class="p">);</span>
84431+ <span class="w"> </span><span class="p">}</span>
84432+
84433+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span>
84434+ <span class="p">}</span>
84435+ </code></pre></div></td></tr></table></div>
84436+ </div>
84437+ <div class="tabbed-block">
84438+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
84439+ <span class="normal"> 2</span>
84440+ <span class="normal"> 3</span>
84441+ <span class="normal"> 4</span>
84442+ <span class="normal"> 5</span>
84443+ <span class="normal"> 6</span>
84444+ <span class="normal"> 7</span>
84445+ <span class="normal"> 8</span>
84446+ <span class="normal"> 9</span>
84447+ <span class="normal">10</span>
84448+ <span class="normal">11</span>
84449+ <span class="normal">12</span>
84450+ <span class="normal">13</span>
84451+ <span class="normal">14</span>
84452+ <span class="normal">15</span>
84453+ <span class="normal">16</span>
84454+ <span class="normal">17</span>
84455+ <span class="normal">18</span>
84456+ <span class="normal">19</span>
84457+ <span class="normal">20</span>
84458+ <span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">dividePlayers</span><span class="p">(</span><span class="nx">skill</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
84459+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">[</span><span class="nx">sum</span><span class="p">,</span><span class="w"> </span><span class="nx">res</span><span class="p">,</span><span class="w"> </span><span class="nx">map</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Map</span><span class="p">()];</span>
84460+
84461+ <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="nx">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">skill</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
84462+ <span class="w"> </span><span class="nx">sum</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span>
84463+ <span class="w"> </span><span class="nx">map</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">x</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="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">);</span>
84464+ <span class="w"> </span><span class="p">}</span>
84465+ <span class="w"> </span><span class="nx">sum</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="nx">skill</span><span class="p">.</span><span class="nx">length</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
84466+
84467+ <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="p">[</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">c</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">map</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
84468+ <span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">complement</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">sum</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span>
84469+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="nx">map</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">complement</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="o">!==</span><span class="w"> </span><span class="nx">c</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
84470+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">x</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">complement</span><span class="p">)</span><span class="w"> </span><span class="nx">c</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
84471+
84472+ <span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">complement</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">c</span><span class="p">;</span>
84473+ <span class="w"> </span><span class="nx">map</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span>
84474+ <span class="w"> </span><span class="nx">map</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">complement</span><span class="p">);</span>
84475+ <span class="w"> </span><span class="p">}</span>
84476+
84477+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span>
84478+ <span class="p">}</span>
84479+ </code></pre></div></td></tr></table></div>
84480+ </div>
8439384481</div>
8439484482</div>
8439584483<!-- solution:end -->
@@ -84423,6 +84511,11 @@ <h3 id="_4">方法二:计数</h3>
8442384511
8442484512 <nav>
8442584513
84514+ <a href="https://github.com/rain84" class="md-author" title="@rain84">
84515+
84516+ <img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84">
84517+ </a>
84518+
8442684519 <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8442784520
8442884521 <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments