Skip to content

Commit e38e33d

Browse files
committed
deploy: e93770e
1 parent f8d2907 commit e38e33d

File tree

8 files changed

+206
-26
lines changed

8 files changed

+206
-26
lines changed

en/lc/3061/index.html

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70975,9 +70975,9 @@
7097570975
<ul class="md-nav__list">
7097670976

7097770977
<li class="md-nav__item">
70978-
<a href="#solution-1" class="md-nav__link">
70978+
<a href="#solution-1-window-function-summation" class="md-nav__link">
7097970979
<span class="md-ellipsis">
70980-
Solution 1
70980+
Solution 1: Window Function + Summation
7098170981
</span>
7098270982
</a>
7098370983

@@ -73719,11 +73719,33 @@ <h2 id="description">Description</h2>
7371973719
</pre>
7372073720

7372173721
<h2 id="solutions">Solutions</h2>
73722-
<h3 id="solution-1">Solution 1</h3>
73723-
<div class="tabbed-set tabbed-alternate" data-tabs="1:1"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label></div>
73722+
<h3 id="solution-1-window-function-summation">Solution 1: Window Function + Summation</h3>
73723+
<p>We use the window function <code>MAX(height) OVER (ORDER BY id)</code> to calculate the maximum height for each position and its left side, and use <code>MAX(height) OVER (ORDER BY id DESC)</code> to calculate the maximum height for each position and its right side, denoted as <code>l</code> and <code>r</code> respectively. Then, the amount of water stored at each position is <code>min(l, r) - height</code>. Finally, we sum them up.</p>
73724+
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label><label for="__tabbed_1_2">Python3</label></div>
7372473725
<div class="tabbed-content">
7372573726
<div class="tabbed-block">
73726-
<div class="highlight"><pre><span></span><code>
73727+
<div class="highlight"><pre><span></span><code><span class="o">#</span><span class="w"> </span><span class="k">Write</span><span class="w"> </span><span class="n">your</span><span class="w"> </span><span class="n">MySQL</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="k">statement</span><span class="w"> </span><span class="n">below</span>
73728+
<span class="k">WITH</span>
73729+
<span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span>
73730+
<span class="w"> </span><span class="k">SELECT</span>
73731+
<span class="w"> </span><span class="o">*</span><span class="p">,</span>
73732+
<span class="w"> </span><span class="k">MAX</span><span class="p">(</span><span class="n">height</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="w"> </span><span class="p">(</span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">id</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">l</span><span class="p">,</span>
73733+
<span class="w"> </span><span class="k">MAX</span><span class="p">(</span><span class="n">height</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="w"> </span><span class="p">(</span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">DESC</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">r</span>
73734+
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Heights</span>
73735+
<span class="w"> </span><span class="p">)</span>
73736+
<span class="k">SELECT</span><span class="w"> </span><span class="k">SUM</span><span class="p">(</span><span class="n">LEAST</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">height</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">total_trapped_water</span>
73737+
<span class="k">FROM</span><span class="w"> </span><span class="n">T</span><span class="p">;</span>
73738+
</code></pre></div>
73739+
</div>
73740+
<div class="tabbed-block">
73741+
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
73742+
73743+
73744+
<span class="k">def</span> <span class="nf">calculate_trapped_rain_water</span><span class="p">(</span><span class="n">heights</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
73745+
<span class="n">heights</span><span class="p">[</span><span class="s2">&quot;l&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">heights</span><span class="p">[</span><span class="s2">&quot;height&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">cummax</span><span class="p">()</span>
73746+
<span class="n">heights</span><span class="p">[</span><span class="s2">&quot;r&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">heights</span><span class="p">[</span><span class="s2">&quot;height&quot;</span><span class="p">][::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">cummax</span><span class="p">()[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
73747+
<span class="n">heights</span><span class="p">[</span><span class="s2">&quot;trapped_water&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">heights</span><span class="p">[[</span><span class="s2">&quot;l&quot;</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">heights</span><span class="p">[</span><span class="s2">&quot;height&quot;</span><span class="p">]</span>
73748+
<span class="k">return</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">({</span><span class="s2">&quot;total_trapped_water&quot;</span><span class="p">:</span> <span class="p">[</span><span class="n">heights</span><span class="p">[</span><span class="s2">&quot;trapped_water&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">sum</span><span class="p">()]})</span>
7372773749
</code></pre></div>
7372873750
</div>
7372973751
</div>

en/lc/3064/index.html

Lines changed: 76 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71038,9 +71038,9 @@
7103871038
<ul class="md-nav__list">
7103971039

7104071040
<li class="md-nav__item">
71041-
<a href="#solution-1" class="md-nav__link">
71041+
<a href="#solution-1-enumeration" class="md-nav__link">
7104271042
<span class="md-ellipsis">
71043-
Solution 1
71043+
Solution 1: Enumeration
7104471044
</span>
7104571045
</a>
7104671046

@@ -73702,23 +73702,91 @@ <h2 id="description">Description</h2>
7370273702
</ul>
7370373703

7370473704
<h2 id="solutions">Solutions</h2>
73705-
<h3 id="solution-1">Solution 1</h3>
73706-
<div class="tabbed-set tabbed-alternate" data-tabs="1:4"><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" /><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></div>
73705+
<h3 id="solution-1-enumeration">Solution 1: Enumeration</h3>
73706+
<p>We can enumerate the powers of 2, and then call the <code>commonSetBits</code> method. If the return value is greater than 0, it means that the corresponding bit in the binary representation of <code>n</code> is 1.</p>
73707+
<p>The time complexity is $O(\log n)$, where $n \le 2^{30}$ in this problem. The space complexity is $O(1)$.</p>
73708+
<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>
7370773709
<div class="tabbed-content">
7370873710
<div class="tabbed-block">
73709-
<div class="highlight"><pre><span></span><code>
73711+
<div class="highlight"><pre><span></span><code><span class="c1"># Definition of commonSetBits API.</span>
73712+
<span class="c1"># def commonSetBits(num: int) -&gt; int:</span>
73713+
73714+
73715+
<span class="k">class</span> <span class="nc">Solution</span><span class="p">:</span>
73716+
<span class="k">def</span> <span class="nf">findNumber</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
73717+
<span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">32</span><span class="p">)</span> <span class="k">if</span> <span class="n">commonSetBits</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">))</span>
73718+
</code></pre></div>
73719+
</div>
73720+
<div class="tabbed-block">
73721+
<div class="highlight"><pre><span></span><code><span class="cm">/**</span>
73722+
<span class="cm"> * Definition of commonSetBits API (defined in the parent class Problem).</span>
73723+
<span class="cm"> * int commonSetBits(int num);</span>
73724+
<span class="cm"> */</span>
73725+
73726+
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Problem</span><span class="w"> </span><span class="p">{</span>
73727+
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">findNumber</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
73728+
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
73729+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">32</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
73730+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">commonSetBits</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
73731+
<span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
73732+
<span class="w"> </span><span class="p">}</span>
73733+
<span class="w"> </span><span class="p">}</span>
73734+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">n</span><span class="p">;</span>
73735+
<span class="w"> </span><span class="p">}</span>
73736+
<span class="p">}</span>
7371073737
</code></pre></div>
7371173738
</div>
7371273739
<div class="tabbed-block">
73713-
<div class="highlight"><pre><span></span><code>
73740+
<div class="highlight"><pre><span></span><code><span class="cm">/**</span>
73741+
<span class="cm"> * Definition of commonSetBits API.</span>
73742+
<span class="cm"> * int commonSetBits(int num);</span>
73743+
<span class="cm"> */</span>
73744+
73745+
<span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
73746+
<span class="k">public</span><span class="o">:</span>
73747+
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">findNumber</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
73748+
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
73749+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">32</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
73750+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">commonSetBits</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
73751+
<span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
73752+
<span class="w"> </span><span class="p">}</span>
73753+
<span class="w"> </span><span class="p">}</span>
73754+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">n</span><span class="p">;</span>
73755+
<span class="w"> </span><span class="p">}</span>
73756+
<span class="p">};</span>
7371473757
</code></pre></div>
7371573758
</div>
7371673759
<div class="tabbed-block">
73717-
<div class="highlight"><pre><span></span><code>
73760+
<div class="highlight"><pre><span></span><code><span class="cm">/**</span>
73761+
<span class="cm"> * Definition of commonSetBits API.</span>
73762+
<span class="cm"> * func commonSetBits(num int) int;</span>
73763+
<span class="cm"> */</span>
73764+
73765+
<span class="kd">func</span><span class="w"> </span><span class="nx">findNumber</span><span class="p">()</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
73766+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="mi">32</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
73767+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">commonSetBits</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
73768+
<span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nx">i</span>
73769+
<span class="w"> </span><span class="p">}</span>
73770+
<span class="w"> </span><span class="p">}</span>
73771+
<span class="w"> </span><span class="k">return</span>
73772+
<span class="p">}</span>
7371873773
</code></pre></div>
7371973774
</div>
7372073775
<div class="tabbed-block">
73721-
<div class="highlight"><pre><span></span><code>
73776+
<div class="highlight"><pre><span></span><code><span class="cm">/**</span>
73777+
<span class="cm"> * Definition of commonSetBits API.</span>
73778+
<span class="cm"> * var commonSetBits = function(num: number): number {}</span>
73779+
<span class="cm"> */</span>
73780+
73781+
<span class="kd">function</span><span class="w"> </span><span class="nx">findNumber</span><span class="p">()</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
73782+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
73783+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">32</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
73784+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">commonSetBits</span><span class="p">(</span><span class="mf">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nx">i</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
73785+
<span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mf">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span>
73786+
<span class="w"> </span><span class="p">}</span>
73787+
<span class="w"> </span><span class="p">}</span>
73788+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span>
73789+
<span class="p">}</span>
7372273790
</code></pre></div>
7372373791
</div>
7372473792
</div>

en/search/search_index.json

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

en/sitemap.xml.gz

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)