Skip to content

Commit 1186028

Browse files
committed
deploy: 2d240b6
1 parent 926c954 commit 1186028

File tree

16 files changed

+7255
-6785
lines changed

16 files changed

+7255
-6785
lines changed

en/lcci/10.1/index.html

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75311,7 +75311,7 @@ <h2 id="solutions">Solutions</h2>
7531175311
<h3 id="solution-1-two-pointers">Solution 1: Two Pointers</h3>
7531275312
<p>We use two pointers $i$ and $j$ to point to the end of arrays $A$ and $B$ respectively, and a pointer $k$ to point to the end of array $A$. Then we traverse arrays $A$ and $B$ from back to front, each time putting the larger element into $A[k]$, then moving pointer $k$ and the pointer of the array with the larger element forward by one position.</p>
7531375313
<p>The time complexity is $O(m + n)$, and the space complexity is $O(1)$.</p>
75314-
<div class="tabbed-set tabbed-alternate" data-tabs="1:7"><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" /><input id="__tabbed_1_7" 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><label for="__tabbed_1_7">JavaScript</label></div>
75314+
<div class="tabbed-set tabbed-alternate" data-tabs="1:8"><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" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" 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><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">Swift</label></div>
7531575315
<div class="tabbed-content">
7531675316
<div class="tabbed-block">
7531775317
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -75509,6 +75509,36 @@ <h3 id="solution-1-two-pointers">Solution 1: Two Pointers</h3>
7550975509
<span class="p">};</span>
7551075510
</code></pre></div></td></tr></table></div>
7551175511
</div>
75512+
<div class="tabbed-block">
75513+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75514+
<span class="normal"> 2</span>
75515+
<span class="normal"> 3</span>
75516+
<span class="normal"> 4</span>
75517+
<span class="normal"> 5</span>
75518+
<span class="normal"> 6</span>
75519+
<span class="normal"> 7</span>
75520+
<span class="normal"> 8</span>
75521+
<span class="normal"> 9</span>
75522+
<span class="normal">10</span>
75523+
<span class="normal">11</span>
75524+
<span class="normal">12</span>
75525+
<span class="normal">13</span>
75526+
<span class="normal">14</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>
75527+
<span class="kd">func</span> <span class="nf">merge</span><span class="p">(</span><span class="kc">_</span> <span class="n">A</span><span class="p">:</span> <span class="kr">inout</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">m</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">B</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">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span>
75528+
<span class="kd">var</span> <span class="nv">i</span> <span class="p">=</span> <span class="n">m</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="n">j</span> <span class="p">=</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span>
75529+
<span class="k">for</span> <span class="n">k</span> <span class="k">in</span> <span class="bp">stride</span><span class="p">(</span><span class="n">from</span><span class="p">:</span> <span class="n">m</span> <span class="o">+</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="n">through</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="n">by</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
75530+
<span class="k">if</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="o">||</span> <span class="p">(</span><span class="n">i</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">A</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">B</span><span class="p">[</span><span class="n">j</span><span class="p">])</span> <span class="p">{</span>
75531+
<span class="n">A</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="p">=</span> <span class="n">A</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
75532+
<span class="n">i</span> <span class="o">-=</span> <span class="mi">1</span>
75533+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
75534+
<span class="n">A</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="p">=</span> <span class="n">B</span><span class="p">[</span><span class="n">j</span><span class="p">]</span>
75535+
<span class="n">j</span> <span class="o">-=</span> <span class="mi">1</span>
75536+
<span class="p">}</span>
75537+
<span class="p">}</span>
75538+
<span class="p">}</span>
75539+
<span class="p">}</span>
75540+
</code></pre></div></td></tr></table></div>
75541+
</div>
7551275542
</div>
7551375543
</div>
7551475544
<!-- end -->
@@ -75540,6 +75570,11 @@ <h3 id="solution-1-two-pointers">Solution 1: Two Pointers</h3>
7554075570

7554175571
<nav>
7554275572

75573+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
75574+
75575+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
75576+
</a>
75577+
7554375578
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
7554475579

7554575580
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">

en/lcci/10.10/index.html

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75321,7 +75321,7 @@ <h3 id="solution-1-binary-indexed-tree">Solution 1: Binary Indexed Tree</h3>
7532175321
<p>We can use a Binary Indexed Tree (also known as a Fenwick Tree) to maintain the count of numbers that are less than or equal to the current number among the added numbers.</p>
7532275322
<p>We create a Binary Indexed Tree with a length of $50010$. For the <code>track</code> method, we increment the current number and add it to the Binary Indexed Tree. For the <code>getRankOfNumber</code> method, we directly query the count of numbers that are less than or equal to $x + 1$ in the Binary Indexed Tree.</p>
7532375323
<p>In terms of time complexity, both the update and query operations of the Binary Indexed Tree have a time complexity of $O(\log n)$, where $n$ is the length of the Binary Indexed Tree.</p>
75324-
<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>
75324+
<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>
7532575325
<div class="tabbed-content">
7532675326
<div class="tabbed-block">
7532775327
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -75771,6 +75771,94 @@ <h3 id="solution-1-binary-indexed-tree">Solution 1: Binary Indexed Tree</h3>
7577175771
<span class="cm"> */</span>
7577275772
</code></pre></div></td></tr></table></div>
7577375773
</div>
75774+
<div class="tabbed-block">
75775+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75776+
<span class="normal"> 2</span>
75777+
<span class="normal"> 3</span>
75778+
<span class="normal"> 4</span>
75779+
<span class="normal"> 5</span>
75780+
<span class="normal"> 6</span>
75781+
<span class="normal"> 7</span>
75782+
<span class="normal"> 8</span>
75783+
<span class="normal"> 9</span>
75784+
<span class="normal">10</span>
75785+
<span class="normal">11</span>
75786+
<span class="normal">12</span>
75787+
<span class="normal">13</span>
75788+
<span class="normal">14</span>
75789+
<span class="normal">15</span>
75790+
<span class="normal">16</span>
75791+
<span class="normal">17</span>
75792+
<span class="normal">18</span>
75793+
<span class="normal">19</span>
75794+
<span class="normal">20</span>
75795+
<span class="normal">21</span>
75796+
<span class="normal">22</span>
75797+
<span class="normal">23</span>
75798+
<span class="normal">24</span>
75799+
<span class="normal">25</span>
75800+
<span class="normal">26</span>
75801+
<span class="normal">27</span>
75802+
<span class="normal">28</span>
75803+
<span class="normal">29</span>
75804+
<span class="normal">30</span>
75805+
<span class="normal">31</span>
75806+
<span class="normal">32</span>
75807+
<span class="normal">33</span>
75808+
<span class="normal">34</span>
75809+
<span class="normal">35</span>
75810+
<span class="normal">36</span>
75811+
<span class="normal">37</span>
75812+
<span class="normal">38</span>
75813+
<span class="normal">39</span>
75814+
<span class="normal">40</span>
75815+
<span class="normal">41</span>
75816+
<span class="normal">42</span>
75817+
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">BinaryIndexedTree</span> <span class="p">{</span>
75818+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">n</span><span class="p">:</span> <span class="nb">Int</span>
75819+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">c</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span>
75820+
75821+
<span class="kd">init</span><span class="p">(</span><span class="kc">_</span> <span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span>
75822+
<span class="kc">self</span><span class="p">.</span><span class="n">n</span> <span class="p">=</span> <span class="n">n</span>
75823+
<span class="kc">self</span><span class="p">.</span><span class="n">c</span> <span class="p">=</span> <span class="nb">Array</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="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
75824+
<span class="p">}</span>
75825+
75826+
<span class="kd">func</span> <span class="nf">update</span><span class="p">(</span><span class="kc">_</span> <span class="n">x</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">delta</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span>
75827+
<span class="kd">var</span> <span class="nv">idx</span> <span class="p">=</span> <span class="n">x</span>
75828+
<span class="k">while</span> <span class="n">idx</span> <span class="o">&lt;=</span> <span class="n">n</span> <span class="p">{</span>
75829+
<span class="n">c</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delta</span>
75830+
<span class="n">idx</span> <span class="o">+=</span> <span class="p">(</span><span class="n">idx</span> <span class="o">&amp;</span> <span class="o">-</span><span class="n">idx</span><span class="p">)</span>
75831+
<span class="p">}</span>
75832+
<span class="p">}</span>
75833+
75834+
<span class="kd">func</span> <span class="nf">query</span><span class="p">(</span><span class="kc">_</span> <span class="n">x</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
75835+
<span class="kd">var</span> <span class="nv">sum</span> <span class="p">=</span> <span class="mi">0</span>
75836+
<span class="kd">var</span> <span class="nv">idx</span> <span class="p">=</span> <span class="n">x</span>
75837+
<span class="k">while</span> <span class="n">idx</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="p">{</span>
75838+
<span class="n">sum</span> <span class="o">+=</span> <span class="n">c</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
75839+
<span class="n">idx</span> <span class="o">-=</span> <span class="p">(</span><span class="n">idx</span> <span class="o">&amp;</span> <span class="o">-</span><span class="n">idx</span><span class="p">)</span>
75840+
<span class="p">}</span>
75841+
<span class="k">return</span> <span class="n">sum</span>
75842+
<span class="p">}</span>
75843+
<span class="p">}</span>
75844+
75845+
<span class="kd">class</span> <span class="nc">StreamRank</span> <span class="p">{</span>
75846+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">tree</span><span class="p">:</span> <span class="n">BinaryIndexedTree</span>
75847+
75848+
<span class="kd">init</span><span class="p">()</span> <span class="p">{</span>
75849+
<span class="n">tree</span> <span class="p">=</span> <span class="n">BinaryIndexedTree</span><span class="p">(</span><span class="mi">50010</span><span class="p">)</span>
75850+
<span class="p">}</span>
75851+
75852+
<span class="kd">func</span> <span class="nf">track</span><span class="p">(</span><span class="kc">_</span> <span class="n">x</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span>
75853+
<span class="n">tree</span><span class="p">.</span><span class="n">update</span><span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
75854+
<span class="p">}</span>
75855+
75856+
<span class="kd">func</span> <span class="nf">getRankOfNumber</span><span class="p">(</span><span class="kc">_</span> <span class="n">x</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
75857+
<span class="k">return</span> <span class="n">tree</span><span class="p">.</span><span class="n">query</span><span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
75858+
<span class="p">}</span>
75859+
<span class="p">}</span>
75860+
</code></pre></div></td></tr></table></div>
75861+
</div>
7577475862
</div>
7577575863
</div>
7577675864
<!-- end -->
@@ -75802,6 +75890,11 @@ <h3 id="solution-1-binary-indexed-tree">Solution 1: Binary Indexed Tree</h3>
7580275890

7580375891
<nav>
7580475892

75893+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
75894+
75895+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
75896+
</a>
75897+
7580575898
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
7580675899

7580775900
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">

0 commit comments

Comments
 (0)