Skip to content

Commit ef48ec3

Browse files
committed
deploy: 60d86dc
1 parent 7efa810 commit ef48ec3

File tree

8 files changed

+7380
-7296
lines changed

8 files changed

+7380
-7296
lines changed

en/lc/1387/index.html

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81261,11 +81261,11 @@ <h2 id="solutions">Solutions</h2>
8126181261
<!-- solution:start -->
8126281262

8126381263
<h3 id="solution-1-custom-sorting">Solution 1: Custom Sorting</h3>
81264-
<p>First, we define a function $f(x)$, which represents the number of steps required to change the number $x$ to $1$, i.e., the weight of the number $x$.</p>
81265-
<p>Then, we sort all the numbers in the interval $[lo, hi]$ in ascending order of weight. If the weights are the same, we sort them in ascending order of the numbers themselves.</p>
81266-
<p>Finally, we return the $k$-th number after sorting.</p>
81267-
<p>The time complexity is $O(n \times \log n \times M)$, and the space complexity is $O(n)$. Where $n$ is the number of numbers in the interval $[lo, hi]$, and $M$ is the maximum value of $f(x)$. In this problem, the maximum value of $M$ is $178$.</p>
81268-
<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>
81264+
<p>First, we define a function $\textit{f}(x)$, which represents the number of steps required to transform the number $x$ into $1$, i.e., the power value of the number $x$.</p>
81265+
<p>Then, we sort all the numbers in the interval $[\textit{lo}, \textit{hi}]$ in ascending order based on their power values. If the power values are the same, we sort them in ascending order based on the numbers themselves.</p>
81266+
<p>Finally, we return the $k$-th number in the sorted list.</p>
81267+
<p>The time complexity is $O(n \times \log n \times M)$, and the space complexity is $O(n)$. Here, $n$ is the number of numbers in the interval $[\textit{lo}, \textit{hi}]$, and $M$ is the maximum value of $f(x)$, which is at most $178$ in this problem.</p>
81268+
<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>
8126981269
<div class="tabbed-content">
8127081270
<div class="tabbed-block">
8127181271
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -81503,6 +81503,48 @@ <h3 id="solution-1-custom-sorting">Solution 1: Custom Sorting</h3>
8150381503
<span class="p">}</span>
8150481504
</code></pre></div></td></tr></table></div>
8150581505
</div>
81506+
<div class="tabbed-block">
81507+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
81508+
<span class="normal"> 2</span>
81509+
<span class="normal"> 3</span>
81510+
<span class="normal"> 4</span>
81511+
<span class="normal"> 5</span>
81512+
<span class="normal"> 6</span>
81513+
<span class="normal"> 7</span>
81514+
<span class="normal"> 8</span>
81515+
<span class="normal"> 9</span>
81516+
<span class="normal">10</span>
81517+
<span class="normal">11</span>
81518+
<span class="normal">12</span>
81519+
<span class="normal">13</span>
81520+
<span class="normal">14</span>
81521+
<span class="normal">15</span>
81522+
<span class="normal">16</span>
81523+
<span class="normal">17</span>
81524+
<span class="normal">18</span>
81525+
<span class="normal">19</span>
81526+
<span class="normal">20</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>
81527+
<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">get_kth</span><span class="p">(</span><span class="n">lo</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="n">hi</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</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>
81528+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">|</span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="o">|</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>
81529+
<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">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
81530+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
81531+
<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="mi">2</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
81532+
<span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
81533+
<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>
81534+
<span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
81535+
<span class="w"> </span><span class="p">}</span>
81536+
<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
81537+
<span class="w"> </span><span class="p">}</span>
81538+
<span class="w"> </span><span class="n">ans</span>
81539+
<span class="w"> </span><span class="p">};</span>
81540+
81541+
<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">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="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">lo</span><span class="o">..=</span><span class="n">hi</span><span class="p">).</span><span class="n">collect</span><span class="p">();</span>
81542+
<span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">sort_by</span><span class="p">(</span><span class="o">|&amp;</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">y</span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">).</span><span class="n">cmp</span><span class="p">(</span><span class="o">&amp;</span><span class="n">f</span><span class="p">(</span><span class="n">y</span><span class="p">)));</span>
81543+
<span class="w"> </span><span class="n">nums</span><span class="p">[(</span><span class="n">k</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">usize</span><span class="p">]</span>
81544+
<span class="w"> </span><span class="p">}</span>
81545+
<span class="p">}</span>
81546+
</code></pre></div></td></tr></table></div>
81547+
</div>
8150681548
</div>
8150781549
</div>
8150881550
<!-- solution:end -->

en/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)