|
85203 | 85203 | <ul class="md-nav__list">
|
85204 | 85204 |
|
85205 | 85205 | <li class="md-nav__item">
|
85206 |
| - <a href="#solution-1" class="md-nav__link"> |
| 85206 | + <a href="#solution-1-hash-table" class="md-nav__link"> |
85207 | 85207 | <span class="md-ellipsis">
|
85208 |
| - Solution 1 |
| 85208 | + Solution 1: Hash Table |
85209 | 85209 | </span>
|
85210 | 85210 | </a>
|
85211 | 85211 |
|
@@ -91326,8 +91326,11 @@ <h2 id="description">Description</h2>
|
91326 | 91326 | <h2 id="solutions">Solutions</h2>
|
91327 | 91327 | <!-- solution:start -->
|
91328 | 91328 |
|
91329 |
| -<h3 id="solution-1">Solution 1</h3> |
91330 |
| -<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> |
| 91329 | +<h3 id="solution-1-hash-table">Solution 1: Hash Table</h3> |
| 91330 | +<p>According to the problem description, we can choose the second largest value in the current array as the valid integer <span class="arithmatex">\(h\)</span> each time, and change all numbers greater than <span class="arithmatex">\(h\)</span> to <span class="arithmatex">\(h\)</span>. This minimizes the number of operations. Additionally, since the operation reduces the numbers, if there are numbers in the current array smaller than <span class="arithmatex">\(k\)</span>, we cannot make all numbers equal to <span class="arithmatex">\(k\)</span>, so we directly return -1.</p> |
| 91331 | +<p>We iterate through the array <span class="arithmatex">\(\textit{nums}\)</span>. For the current number <span class="arithmatex">\(x\)</span>, if <span class="arithmatex">\(x < k\)</span>, we directly return -1. Otherwise, we add <span class="arithmatex">\(x\)</span> to the hash table and update the minimum value <span class="arithmatex">\(\textit{mi}\)</span> in the current array. Finally, we return the size of the hash table minus 1 (if <span class="arithmatex">\(\textit{mi} = k\)</span>, we need to subtract 1).</p> |
| 91332 | +<p>Time complexity is <span class="arithmatex">\(O(n)\)</span>, and space complexity is <span class="arithmatex">\(O(n)\)</span>, where <span class="arithmatex">\(n\)</span> is the length of the array <span class="arithmatex">\(\textit{nums}\)</span>.</p> |
| 91333 | +<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">Rust</label></div> |
91331 | 91334 | <div class="tabbed-content">
|
91332 | 91335 | <div class="tabbed-block">
|
91333 | 91336 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
|
@@ -91471,6 +91474,44 @@ <h3 id="solution-1">Solution 1</h3>
|
91471 | 91474 | <span class="p">}</span>
|
91472 | 91475 | </code></pre></div></td></tr></table></div>
|
91473 | 91476 | </div>
|
| 91477 | +<div class="tabbed-block"> |
| 91478 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 91479 | +<span class="normal"> 2</span> |
| 91480 | +<span class="normal"> 3</span> |
| 91481 | +<span class="normal"> 4</span> |
| 91482 | +<span class="normal"> 5</span> |
| 91483 | +<span class="normal"> 6</span> |
| 91484 | +<span class="normal"> 7</span> |
| 91485 | +<span class="normal"> 8</span> |
| 91486 | +<span class="normal"> 9</span> |
| 91487 | +<span class="normal">10</span> |
| 91488 | +<span class="normal">11</span> |
| 91489 | +<span class="normal">12</span> |
| 91490 | +<span class="normal">13</span> |
| 91491 | +<span class="normal">14</span> |
| 91492 | +<span class="normal">15</span> |
| 91493 | +<span class="normal">16</span> |
| 91494 | +<span class="normal">17</span> |
| 91495 | +<span class="normal">18</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">impl</span><span class="w"> </span><span class="n">Solution</span><span class="w"> </span><span class="p">{</span> |
| 91496 | +<span class="w"> </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">min_operations</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="nb">Vec</span><span class="o"><</span><span class="kt">i32</span><span class="o">></span><span class="p">,</span><span class="w"> </span><span class="n">k</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span> |
| 91497 | +<span class="w"> </span><span class="k">use</span><span class="w"> </span><span class="n">std</span><span class="p">::</span><span class="n">collections</span><span class="p">::</span><span class="n">HashSet</span><span class="p">;</span> |
| 91498 | + |
| 91499 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">HashSet</span><span class="p">::</span><span class="n">new</span><span class="p">();</span> |
| 91500 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">mi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kt">i32</span><span class="p">::</span><span class="n">MAX</span><span class="p">;</span> |
| 91501 | + |
| 91502 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="o">&</span><span class="n">x</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="o">&</span><span class="n">nums</span><span class="w"> </span><span class="p">{</span> |
| 91503 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="p">{</span> |
| 91504 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span> |
| 91505 | +<span class="w"> </span><span class="p">}</span> |
| 91506 | +<span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">x</span><span class="p">);</span> |
| 91507 | +<span class="w"> </span><span class="n">mi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mi</span><span class="p">.</span><span class="n">min</span><span class="p">(</span><span class="n">x</span><span class="p">);</span> |
| 91508 | +<span class="w"> </span><span class="p">}</span> |
| 91509 | + |
| 91510 | +<span class="w"> </span><span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">mi</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</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> |
| 91511 | +<span class="w"> </span><span class="p">}</span> |
| 91512 | +<span class="p">}</span> |
| 91513 | +</code></pre></div></td></tr></table></div> |
| 91514 | +</div> |
91474 | 91515 | </div>
|
91475 | 91516 | </div>
|
91476 | 91517 | <!-- solution:end -->
|
|
0 commit comments