|
30657 | 30657 | </span>
|
30658 | 30658 | </a>
|
30659 | 30659 |
|
| 30660 | +</li> |
| 30661 | + |
| 30662 | + <li class="md-nav__item"> |
| 30663 | + <a href="#swift" class="md-nav__link"> |
| 30664 | + <span class="md-ellipsis"> |
| 30665 | + Swift |
| 30666 | + </span> |
| 30667 | + </a> |
| 30668 | + |
30660 | 30669 | </li>
|
30661 | 30670 |
|
30662 | 30671 | </ul>
|
@@ -78137,7 +78146,7 @@ <h2 id="solutions">Solutions</h2>
|
78137 | 78146 | <h3 id="solution-1-custom-sorting">Solution 1: Custom Sorting</h3>
|
78138 | 78147 | <p>First, we use a hash table $pos$ to record the position of each element in array $arr2$. Then, we map each element in array $arr1$ to a tuple $(pos.get(x, 1000 + x), x)$, and sort these tuples. Finally, we take out the second element of all tuples and return it.</p>
|
78139 | 78148 | <p>The time complexity is $O(n \times \log n + m)$, and the space complexity is $O(n + m)$. Here, $n$ and $m$ are the lengths of arrays $arr1$ and $arr2$, respectively.</p>
|
78140 |
| -<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> |
| 78149 | +<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> |
78141 | 78150 | <div class="tabbed-content">
|
78142 | 78151 | <div class="tabbed-block">
|
78143 | 78152 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
@@ -78297,6 +78306,38 @@ <h3 id="solution-1-custom-sorting">Solution 1: Custom Sorting</h3>
|
78297 | 78306 | <span class="p">}</span>
|
78298 | 78307 | </code></pre></div></td></tr></table></div>
|
78299 | 78308 | </div>
|
| 78309 | +<div class="tabbed-block"> |
| 78310 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 78311 | +<span class="normal"> 2</span> |
| 78312 | +<span class="normal"> 3</span> |
| 78313 | +<span class="normal"> 4</span> |
| 78314 | +<span class="normal"> 5</span> |
| 78315 | +<span class="normal"> 6</span> |
| 78316 | +<span class="normal"> 7</span> |
| 78317 | +<span class="normal"> 8</span> |
| 78318 | +<span class="normal"> 9</span> |
| 78319 | +<span class="normal">10</span> |
| 78320 | +<span class="normal">11</span> |
| 78321 | +<span class="normal">12</span> |
| 78322 | +<span class="normal">13</span> |
| 78323 | +<span class="normal">14</span> |
| 78324 | +<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span> |
| 78325 | + <span class="kd">func</span> <span class="nf">relativeSortArray</span><span class="p">(</span><span class="kc">_</span> <span class="n">arr1</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">arr2</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">])</span> <span class="p">-></span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span> <span class="p">{</span> |
| 78326 | + <span class="kd">var</span> <span class="nv">pos</span> <span class="p">=</span> <span class="p">[</span><span class="nb">Int</span><span class="p">:</span> <span class="nb">Int</span><span class="p">]()</span> |
| 78327 | + <span class="k">for</span> <span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="k">in</span> <span class="n">arr2</span><span class="p">.</span><span class="n">enumerated</span><span class="p">()</span> <span class="p">{</span> |
| 78328 | + <span class="n">pos</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="p">=</span> <span class="n">i</span> |
| 78329 | + <span class="p">}</span> |
| 78330 | + <span class="kd">var</span> <span class="nv">arr</span> <span class="p">=</span> <span class="p">[(</span><span class="nb">Int</span><span class="p">,</span> <span class="nb">Int</span><span class="p">)]()</span> |
| 78331 | + <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">arr1</span> <span class="p">{</span> |
| 78332 | + <span class="kd">let</span> <span class="nv">j</span> <span class="p">=</span> <span class="n">pos</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="p">??</span> <span class="n">arr2</span><span class="p">.</span><span class="bp">count</span> |
| 78333 | + <span class="n">arr</span><span class="p">.</span><span class="n">append</span><span class="p">((</span><span class="n">j</span><span class="p">,</span> <span class="n">x</span><span class="p">))</span> |
| 78334 | + <span class="p">}</span> |
| 78335 | + <span class="n">arr</span><span class="p">.</span><span class="bp">sort</span> <span class="p">{</span> <span class="nv">$0</span><span class="p">.</span><span class="mi">0</span> <span class="o"><</span> <span class="nv">$1</span><span class="p">.</span><span class="mi">0</span> <span class="o">||</span> <span class="p">(</span><span class="nv">$0</span><span class="p">.</span><span class="mi">0</span> <span class="p">==</span> <span class="nv">$1</span><span class="p">.</span><span class="mi">0</span> <span class="o">&&</span> <span class="nv">$0</span><span class="p">.</span><span class="mi">1</span> <span class="o"><</span> <span class="nv">$1</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span> <span class="p">}</span> |
| 78336 | + <span class="k">return</span> <span class="n">arr</span><span class="p">.</span><span class="bp">map</span> <span class="p">{</span> <span class="nv">$0</span><span class="p">.</span><span class="mi">1</span> <span class="p">}</span> |
| 78337 | + <span class="p">}</span> |
| 78338 | +<span class="p">}</span> |
| 78339 | +</code></pre></div></td></tr></table></div> |
| 78340 | +</div> |
78300 | 78341 | </div>
|
78301 | 78342 | </div>
|
78302 | 78343 | <!-- solution:end -->
|
@@ -78431,6 +78472,37 @@ <h4 id="typescript">TypeScript</h4>
|
78431 | 78472 | <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
|
78432 | 78473 | <span class="p">}</span>
|
78433 | 78474 | </code></pre></div>
|
| 78475 | +<h4 id="swift">Swift</h4> |
| 78476 | +<div class="highlight"><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span> |
| 78477 | + <span class="kd">func</span> <span class="nf">relativeSortArray</span><span class="p">(</span><span class="kc">_</span> <span class="n">arr1</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">arr2</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">])</span> <span class="p">-></span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span> <span class="p">{</span> |
| 78478 | + <span class="kd">var</span> <span class="nv">cnt</span> <span class="p">=</span> <span class="p">[</span><span class="nb">Int</span><span class="p">](</span><span class="n">repeating</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="bp">count</span><span class="p">:</span> <span class="mi">1001</span><span class="p">)</span> |
| 78479 | + <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">arr1</span> <span class="p">{</span> |
| 78480 | + <span class="n">cnt</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span> |
| 78481 | + <span class="p">}</span> |
| 78482 | + |
| 78483 | + <span class="k">guard</span> <span class="kd">let</span> <span class="nv">mi</span> <span class="p">=</span> <span class="n">arr1</span><span class="p">.</span><span class="bp">min</span><span class="p">(),</span> <span class="kd">let</span> <span class="nv">mx</span> <span class="p">=</span> <span class="n">arr1</span><span class="p">.</span><span class="bp">max</span><span class="p">()</span> <span class="k">else</span> <span class="p">{</span> |
| 78484 | + <span class="k">return</span> <span class="p">[]</span> |
| 78485 | + <span class="p">}</span> |
| 78486 | + |
| 78487 | + <span class="kd">var</span> <span class="nv">ans</span> <span class="p">=</span> <span class="p">[</span><span class="nb">Int</span><span class="p">]()</span> |
| 78488 | + <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">arr2</span> <span class="p">{</span> |
| 78489 | + <span class="k">while</span> <span class="n">cnt</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span> <span class="p">{</span> |
| 78490 | + <span class="n">ans</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> |
| 78491 | + <span class="n">cnt</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">-=</span> <span class="mi">1</span> |
| 78492 | + <span class="p">}</span> |
| 78493 | + <span class="p">}</span> |
| 78494 | + |
| 78495 | + <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">mi</span><span class="p">...</span><span class="n">mx</span> <span class="p">{</span> |
| 78496 | + <span class="k">while</span> <span class="n">cnt</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span> <span class="p">{</span> |
| 78497 | + <span class="n">ans</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> |
| 78498 | + <span class="n">cnt</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">-=</span> <span class="mi">1</span> |
| 78499 | + <span class="p">}</span> |
| 78500 | + <span class="p">}</span> |
| 78501 | + |
| 78502 | + <span class="k">return</span> <span class="n">ans</span> |
| 78503 | + <span class="p">}</span> |
| 78504 | +<span class="p">}</span> |
| 78505 | +</code></pre></div> |
78434 | 78506 | <!-- tabs:end -->
|
78435 | 78507 |
|
78436 | 78508 | <!-- solution:end -->
|
@@ -78464,14 +78536,14 @@ <h4 id="typescript">TypeScript</h4>
|
78464 | 78536 |
|
78465 | 78537 | <nav>
|
78466 | 78538 |
|
78467 |
| - <a href="https://github.com/rain84" class="md-author" title="@rain84"> |
| 78539 | + <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme"> |
78468 | 78540 |
|
78469 |
| - <img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84"> |
| 78541 | + <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme"> |
78470 | 78542 | </a>
|
78471 | 78543 |
|
78472 |
| - <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme"> |
| 78544 | + <a href="https://github.com/rain84" class="md-author" title="@rain84"> |
78473 | 78545 |
|
78474 |
| - <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme"> |
| 78546 | + <img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84"> |
78475 | 78547 | </a>
|
78476 | 78548 |
|
78477 | 78549 |
|
|
0 commit comments