Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e16c3e5

Browse files
committedApr 8, 2025·
deploy: c90ca0e
1 parent 459b2d2 commit e16c3e5

File tree

5 files changed

+121
-9
lines changed

5 files changed

+121
-9
lines changed
 

‎en/lc/3375/index.html

+45-4
Original file line numberDiff line numberDiff line change
@@ -85203,9 +85203,9 @@
8520385203
<ul class="md-nav__list">
8520485204

8520585205
<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">
8520785207
<span class="md-ellipsis">
85208-
Solution 1
85208+
Solution 1: Hash Table
8520985209
</span>
8521085210
</a>
8521185211

@@ -91326,8 +91326,11 @@ <h2 id="description">Description</h2>
9132691326
<h2 id="solutions">Solutions</h2>
9132791327
<!-- solution:start -->
9132891328

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 &lt; 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>
9133191334
<div class="tabbed-content">
9133291335
<div class="tabbed-block">
9133391336
<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>
9147191474
<span class="p">}</span>
9147291475
</code></pre></div></td></tr></table></div>
9147391476
</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">&lt;</span><span class="kt">i32</span><span class="o">&gt;</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">-&gt;</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">&amp;</span><span class="n">x</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="o">&amp;</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">&lt;</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>
9147491515
</div>
9147591516
</div>
9147691517
<!-- solution:end -->

‎en/search/search_index.json

+1-1
Large diffs are not rendered by default.

‎lc/2626/index.html

+30
Original file line numberDiff line numberDiff line change
@@ -96361,6 +96361,36 @@ <h3 id="_3">方法一</h3>
9636196361

9636296362

9636396363

96364+
<aside class="md-source-file">
96365+
96366+
96367+
96368+
96369+
96370+
<span class="md-source-file__fact">
96371+
96372+
96373+
<span class="md-icon" title="贡献者">
96374+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2"/></svg>
96375+
</span>
96376+
<span>GitHub</span>
96377+
96378+
96379+
<nav>
96380+
96381+
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
96382+
96383+
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
96384+
</a>
96385+
96386+
96387+
96388+
</nav>
96389+
</span>
96390+
96391+
96392+
</aside>
96393+
9636496394

9636596395

9636696396

‎lc/3375/index.html

+44-3
Original file line numberDiff line numberDiff line change
@@ -85249,7 +85249,7 @@
8524985249
<li class="md-nav__item">
8525085250
<a href="#_3" class="md-nav__link">
8525185251
<span class="md-ellipsis">
85252-
方法一
85252+
方法一:哈希表
8525385253
</span>
8525485254
</a>
8525585255

@@ -96326,8 +96326,11 @@ <h2 id="_1">题目描述</h2>
9632696326
<h2 id="_2">解法</h2>
9632796327
<!-- solution:start -->
9632896328

96329-
<h3 id="_3">方法一</h3>
96330-
<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>
96329+
<h3 id="_3">方法一:哈希表</h3>
96330+
<p>根据题目描述,我们每次可以选择当前数组中的次大值作为合法整数 <span class="arithmatex">\(h\)</span>,将所有大于 <span class="arithmatex">\(h\)</span> 的数都变为 <span class="arithmatex">\(h\)</span>,这样可以使得操作次数最少。另外,由于操作会使得数字变小,因此,如果当前数组中存在小于 <span class="arithmatex">\(k\)</span> 的数,那么我们就无法将所有数都变为 <span class="arithmatex">\(k\)</span>,直接返回 -1 即可。</p>
96331+
<p>我们遍历数组 <span class="arithmatex">\(\textit{nums}\)</span>,对于当前的数 <span class="arithmatex">\(x\)</span>,如果 <span class="arithmatex">\(x &lt; k\)</span>,直接返回 -1;否则,我们将 <span class="arithmatex">\(x\)</span> 加入哈希表中,并且更新当前数组中的最小值 <span class="arithmatex">\(\textit{mi}\)</span>。最后,我们返回哈希表的大小减去 1(如果 <span class="arithmatex">\(\textit{mi} = k\)</span>,则需要减去 1)。</p>
96332+
<p>时间复杂度 <span class="arithmatex">\(O(n)\)</span>,空间复杂度 <span class="arithmatex">\(O(n)\)</span>。其中 <span class="arithmatex">\(n\)</span> 是数组 <span class="arithmatex">\(\textit{nums}\)</span> 的长度。</p>
96333+
<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>
9633196334
<div class="tabbed-content">
9633296335
<div class="tabbed-block">
9633396336
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -96471,6 +96474,44 @@ <h3 id="_3">方法一</h3>
9647196474
<span class="p">}</span>
9647296475
</code></pre></div></td></tr></table></div>
9647396476
</div>
96477+
<div class="tabbed-block">
96478+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
96479+
<span class="normal"> 2</span>
96480+
<span class="normal"> 3</span>
96481+
<span class="normal"> 4</span>
96482+
<span class="normal"> 5</span>
96483+
<span class="normal"> 6</span>
96484+
<span class="normal"> 7</span>
96485+
<span class="normal"> 8</span>
96486+
<span class="normal"> 9</span>
96487+
<span class="normal">10</span>
96488+
<span class="normal">11</span>
96489+
<span class="normal">12</span>
96490+
<span class="normal">13</span>
96491+
<span class="normal">14</span>
96492+
<span class="normal">15</span>
96493+
<span class="normal">16</span>
96494+
<span class="normal">17</span>
96495+
<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>
96496+
<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">&lt;</span><span class="kt">i32</span><span class="o">&gt;</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">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
96497+
<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>
96498+
96499+
<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>
96500+
<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>
96501+
96502+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="o">&amp;</span><span class="n">x</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="o">&amp;</span><span class="n">nums</span><span class="w"> </span><span class="p">{</span>
96503+
<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">&lt;</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="p">{</span>
96504+
<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>
96505+
<span class="w"> </span><span class="p">}</span>
96506+
<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>
96507+
<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>
96508+
<span class="w"> </span><span class="p">}</span>
96509+
96510+
<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>
96511+
<span class="w"> </span><span class="p">}</span>
96512+
<span class="p">}</span>
96513+
</code></pre></div></td></tr></table></div>
96514+
</div>
9647496515
</div>
9647596516
</div>
9647696517
<!-- solution:end -->

0 commit comments

Comments
 (0)