Skip to content

Commit 4863087

Browse files
committed
deploy: 0e66859
1 parent d0ac1e1 commit 4863087

File tree

7 files changed

+88
-119
lines changed

7 files changed

+88
-119
lines changed

en/lc/2041/index.html

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49757,9 +49757,9 @@
4975749757
<ul class="md-nav__list">
4975849758

4975949759
<li class="md-nav__item">
49760-
<a href="#solution-1" class="md-nav__link">
49760+
<a href="#solution-1-join-tables-grouping-filtering" class="md-nav__link">
4976149761
<span class="md-ellipsis">
49762-
Solution 1
49762+
Solution 1: Join Tables + Grouping + Filtering
4976349763
</span>
4976449764
</a>
4976549765

@@ -76523,8 +76523,9 @@ <h2 id="description">Description</h2>
7652376523
<h2 id="solutions">Solutions</h2>
7652476524
<!-- solution:start -->
7652576525

76526-
<h3 id="solution-1">Solution 1</h3>
76527-
<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>
76526+
<h3 id="solution-1-join-tables-grouping-filtering">Solution 1: Join Tables + Grouping + Filtering</h3>
76527+
<p>We can join the <code>Candidates</code> table and the <code>Rounds</code> table based on <code>interview_id</code>, filter out candidates with at least 2 years of work experience, then group by <code>candidate_id</code> to calculate the total score for each candidate, and finally filter out candidates with a total score greater than 15.</p>
76528+
<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>
7652876529
<div class="tabbed-content">
7652976530
<div class="tabbed-block">
7653076531
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -76537,13 +76538,31 @@ <h3 id="solution-1">Solution 1</h3>
7653776538
<span class="normal">8</span></pre></div></td><td class="code"><div><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>
7653876539
<span class="k">SELECT</span><span class="w"> </span><span class="n">candidate_id</span>
7653976540
<span class="k">FROM</span>
76540-
<span class="w"> </span><span class="n">Candidates</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">c</span>
76541-
<span class="w"> </span><span class="k">LEFT</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">Rounds</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">interview_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">interview_id</span>
76541+
<span class="w"> </span><span class="n">Candidates</span>
76542+
<span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">Rounds</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="p">(</span><span class="n">interview_id</span><span class="p">)</span>
7654276543
<span class="k">WHERE</span><span class="w"> </span><span class="n">years_of_exp</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">2</span>
76543-
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">interview_id</span>
76544+
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span>
7654476545
<span class="k">HAVING</span><span class="w"> </span><span class="k">SUM</span><span class="p">(</span><span class="n">score</span><span class="p">)</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">15</span><span class="p">;</span>
7654576546
</code></pre></div></td></tr></table></div>
7654676547
</div>
76548+
<div class="tabbed-block">
76549+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
76550+
<span class="normal">2</span>
76551+
<span class="normal">3</span>
76552+
<span class="normal">4</span>
76553+
<span class="normal">5</span>
76554+
<span class="normal">6</span>
76555+
<span class="normal">7</span>
76556+
<span class="normal">8</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
76557+
76558+
76559+
<span class="k">def</span> <span class="nf">accepted_candidates</span><span class="p">(</span><span class="n">candidates</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="n">rounds</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>
76560+
<span class="n">merged_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">candidates</span><span class="p">,</span> <span class="n">rounds</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;interview_id&quot;</span><span class="p">)</span>
76561+
<span class="n">filtered_df</span> <span class="o">=</span> <span class="n">merged_df</span><span class="p">[</span><span class="n">merged_df</span><span class="p">[</span><span class="s2">&quot;years_of_exp&quot;</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="mi">2</span><span class="p">]</span>
76562+
<span class="n">grouped_df</span> <span class="o">=</span> <span class="n">filtered_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;candidate_id&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">agg</span><span class="p">({</span><span class="s2">&quot;score&quot;</span><span class="p">:</span> <span class="s2">&quot;sum&quot;</span><span class="p">})</span>
76563+
<span class="k">return</span> <span class="n">grouped_df</span><span class="p">[</span><span class="n">grouped_df</span><span class="p">[</span><span class="s2">&quot;score&quot;</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">15</span><span class="p">]</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()[[</span><span class="s2">&quot;candidate_id&quot;</span><span class="p">]]</span>
76564+
</code></pre></div></td></tr></table></div>
76565+
</div>
7654776566
</div>
7654876567
</div>
7654976568
<!-- solution:end -->

en/lc/2042/index.html

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -49784,15 +49784,6 @@
4978449784
</span>
4978549785
</a>
4978649786

49787-
</li>
49788-
49789-
<li class="md-nav__item">
49790-
<a href="#solution-2" class="md-nav__link">
49791-
<span class="md-ellipsis">
49792-
Solution 2
49793-
</span>
49794-
</a>
49795-
4979649787
</li>
4979749788

4979849789
</ul>
@@ -76730,49 +76721,6 @@ <h3 id="solution-1-simulation">Solution 1: Simulation</h3>
7673076721
</div>
7673176722
<!-- solution:end -->
7673276723

76733-
<!-- solution:start -->
76734-
76735-
<h3 id="solution-2">Solution 2</h3>
76736-
<div class="tabbed-set tabbed-alternate" data-tabs="2:1"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label></div>
76737-
<div class="tabbed-content">
76738-
<div class="tabbed-block">
76739-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
76740-
<span class="normal"> 2</span>
76741-
<span class="normal"> 3</span>
76742-
<span class="normal"> 4</span>
76743-
<span class="normal"> 5</span>
76744-
<span class="normal"> 6</span>
76745-
<span class="normal"> 7</span>
76746-
<span class="normal"> 8</span>
76747-
<span class="normal"> 9</span>
76748-
<span class="normal">10</span>
76749-
<span class="normal">11</span>
76750-
<span class="normal">12</span>
76751-
<span class="normal">13</span>
76752-
<span class="normal">14</span>
76753-
<span class="normal">15</span>
76754-
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Solution</span><span class="p">:</span>
76755-
<span class="k">def</span> <span class="nf">areNumbersAscending</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
76756-
<span class="n">pre</span> <span class="o">=</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
76757-
<span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
76758-
<span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">:</span>
76759-
<span class="k">if</span> <span class="n">s</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
76760-
<span class="n">cur</span> <span class="o">=</span> <span class="mi">0</span>
76761-
<span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="ow">and</span> <span class="n">s</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
76762-
<span class="n">cur</span> <span class="o">=</span> <span class="n">cur</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="nb">int</span><span class="p">(</span><span class="n">s</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
76763-
<span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
76764-
<span class="k">if</span> <span class="n">pre</span> <span class="o">&gt;=</span> <span class="n">cur</span><span class="p">:</span>
76765-
<span class="k">return</span> <span class="kc">False</span>
76766-
<span class="n">pre</span> <span class="o">=</span> <span class="n">cur</span>
76767-
<span class="k">else</span><span class="p">:</span>
76768-
<span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
76769-
<span class="k">return</span> <span class="kc">True</span>
76770-
</code></pre></div></td></tr></table></div>
76771-
</div>
76772-
</div>
76773-
</div>
76774-
<!-- solution:end -->
76775-
7677676724
<!-- problem:end -->
7677776725

7677876726

en/lcci/16.11/index.html

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76647,6 +76647,41 @@ <h3 id="solution-1-case-analysis">Solution 1: Case Analysis</h3>
7664776647

7664876648

7664976649

76650+
<aside class="md-source-file">
76651+
76652+
76653+
76654+
76655+
76656+
<span class="md-source-file__fact">
76657+
76658+
76659+
<span class="md-icon" title="Contributors">
76660+
<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-.33.85 0 1.71.11 2.5.33 1.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 2Z"/></svg>
76661+
</span>
76662+
<span>GitHub</span>
76663+
76664+
76665+
<nav>
76666+
76667+
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
76668+
76669+
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
76670+
</a>
76671+
76672+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
76673+
76674+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
76675+
</a>
76676+
76677+
76678+
76679+
</nav>
76680+
</span>
76681+
76682+
76683+
</aside>
76684+
7665076685

7665176686

7665276687

en/search/search_index.json

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

lc/2041/index.html

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49799,7 +49799,7 @@
4979949799
<li class="md-nav__item">
4980049800
<a href="#_3" class="md-nav__link">
4980149801
<span class="md-ellipsis">
49802-
方法一
49802+
方法一:连接表 + 分组 + 过滤
4980349803
</span>
4980449804
</a>
4980549805

@@ -81124,8 +81124,9 @@ <h2 id="_1">题目描述</h2>
8112481124
<h2 id="_2">解法</h2>
8112581125
<!-- solution:start -->
8112681126

81127-
<h3 id="_3">方法一</h3>
81128-
<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>
81127+
<h3 id="_3">方法一:连接表 + 分组 + 过滤</h3>
81128+
<p>我们可以将 <code>Candidates</code> 表和 <code>Rounds</code> 表按照 <code>interview_id</code> 进行连接,筛选出工作年限至少为 2 年的候选人,然后按照 <code>candidate_id</code> 进行分组,计算每个候选人的总分,最后筛选出总分大于 15 分的候选人。</p>
81129+
<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>
8112981130
<div class="tabbed-content">
8113081131
<div class="tabbed-block">
8113181132
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -81138,13 +81139,31 @@ <h3 id="_3">方法一</h3>
8113881139
<span class="normal">8</span></pre></div></td><td class="code"><div><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>
8113981140
<span class="k">SELECT</span><span class="w"> </span><span class="n">candidate_id</span>
8114081141
<span class="k">FROM</span>
81141-
<span class="w"> </span><span class="n">Candidates</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">c</span>
81142-
<span class="w"> </span><span class="k">LEFT</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">Rounds</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">interview_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">interview_id</span>
81142+
<span class="w"> </span><span class="n">Candidates</span>
81143+
<span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">Rounds</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="p">(</span><span class="n">interview_id</span><span class="p">)</span>
8114381144
<span class="k">WHERE</span><span class="w"> </span><span class="n">years_of_exp</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">2</span>
81144-
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">interview_id</span>
81145+
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span>
8114581146
<span class="k">HAVING</span><span class="w"> </span><span class="k">SUM</span><span class="p">(</span><span class="n">score</span><span class="p">)</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">15</span><span class="p">;</span>
8114681147
</code></pre></div></td></tr></table></div>
8114781148
</div>
81149+
<div class="tabbed-block">
81150+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
81151+
<span class="normal">2</span>
81152+
<span class="normal">3</span>
81153+
<span class="normal">4</span>
81154+
<span class="normal">5</span>
81155+
<span class="normal">6</span>
81156+
<span class="normal">7</span>
81157+
<span class="normal">8</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
81158+
81159+
81160+
<span class="k">def</span> <span class="nf">accepted_candidates</span><span class="p">(</span><span class="n">candidates</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="n">rounds</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>
81161+
<span class="n">merged_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">candidates</span><span class="p">,</span> <span class="n">rounds</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;interview_id&quot;</span><span class="p">)</span>
81162+
<span class="n">filtered_df</span> <span class="o">=</span> <span class="n">merged_df</span><span class="p">[</span><span class="n">merged_df</span><span class="p">[</span><span class="s2">&quot;years_of_exp&quot;</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="mi">2</span><span class="p">]</span>
81163+
<span class="n">grouped_df</span> <span class="o">=</span> <span class="n">filtered_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;candidate_id&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">agg</span><span class="p">({</span><span class="s2">&quot;score&quot;</span><span class="p">:</span> <span class="s2">&quot;sum&quot;</span><span class="p">})</span>
81164+
<span class="k">return</span> <span class="n">grouped_df</span><span class="p">[</span><span class="n">grouped_df</span><span class="p">[</span><span class="s2">&quot;score&quot;</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">15</span><span class="p">]</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()[[</span><span class="s2">&quot;candidate_id&quot;</span><span class="p">]]</span>
81165+
</code></pre></div></td></tr></table></div>
81166+
</div>
8114881167
</div>
8114981168
</div>
8115081169
<!-- solution:end -->

0 commit comments

Comments
 (0)