Skip to content

Commit fea88bf

Browse files
committed
deploy: db26b5f
1 parent 2fd9408 commit fea88bf

File tree

14 files changed

+7406
-7472
lines changed

14 files changed

+7406
-7472
lines changed

en/lc/2189/index.html

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53357,9 +53357,9 @@
5335753357
<ul class="md-nav__list">
5335853358

5335953359
<li class="md-nav__item">
53360-
<a href="#solution-1" class="md-nav__link">
53360+
<a href="#solution-1-memoization-search" class="md-nav__link">
5336153361
<span class="md-ellipsis">
53362-
Solution 1
53362+
Solution 1: Memoization Search
5336353363
</span>
5336453364
</a>
5336553365

@@ -82152,7 +82152,17 @@ <h2 id="description">Description</h2>
8215282152
<h2 id="solutions">Solutions</h2>
8215382153
<!-- solution:start -->
8215482154

82155-
<h3 id="solution-1">Solution 1</h3>
82155+
<h3 id="solution-1-memoization-search">Solution 1: Memoization Search</h3>
82156+
<p>We notice that the number of cards in each layer is $3 \times k + 2$, and the number of cards in each layer is different. Therefore, the problem can be transformed into: how many ways can the integer $n$ be expressed as the sum of numbers of the form $3 \times k + 2$. This is a classic knapsack problem that can be solved using memoization search.</p>
82157+
<p>We design a function $\text{dfs}(n, k)$, which represents the number of ways to build different houses of cards when the remaining number of cards is $n$ and the current layer is $k$. The answer is $\text{dfs}(n, 0)$.</p>
82158+
<p>The execution logic of the function $\text{dfs}(n, k)$ is as follows:</p>
82159+
<ul>
82160+
<li>If $3 \times k + 2 \gt n$, then the current layer cannot place any cards, return $0$;</li>
82161+
<li>If $3 \times k + 2 = n$, then the current layer can place cards, and after placing them, the entire house of cards is completed, return $1$;</li>
82162+
<li>Otherwise, we can choose not to place cards or to place cards. If we choose not to place cards, the remaining number of cards does not change, and the number of layers increases by $1$, i.e., $\text{dfs}(n, k + 1)$. If we choose to place cards, the remaining number of cards decreases by $3 \times k + 2$, and the number of layers increases by $1$, i.e., $\text{dfs}(n - (3 \times k + 2), k + 1)$. The sum of these two cases is the answer.</li>
82163+
</ul>
82164+
<p>During the process, we can use memoization to avoid repeated calculations.</p>
82165+
<p>The time complexity is $O(n^2)$, and the space complexity is $O(n^2)$. Here, $n$ is the number of cards.</p>
8215682166
<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>
8215782167
<div class="tabbed-content">
8215882168
<div class="tabbed-block">
@@ -82253,7 +82263,7 @@ <h3 id="solution-1">Solution 1</h3>
8225382263
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">houseOfCards</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8225482264
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">f</span><span class="p">[</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="p">][</span><span class="n">n</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="mi">1</span><span class="p">];</span>
8225582265
<span class="w"> </span><span class="n">memset</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">f</span><span class="p">));</span>
82256-
<span class="w"> </span><span class="n">function</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">(</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="o">&gt;</span><span class="w"> </span><span class="n">dfs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">&amp;</span><span class="p">](</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
82266+
<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">dfs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">&amp;</span><span class="p">](</span><span class="k">this</span><span class="w"> </span><span class="k">auto</span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">dfs</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
8225782267
<span class="w"> </span><span class="kt">int</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">3</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
8225882268
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8225982269
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>

en/lc/2214/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82162,8 +82162,8 @@ <h2 id="solutions">Solutions</h2>
8216282162
<!-- solution:start -->
8216382163

8216482164
<h3 id="solution-1-greedy">Solution 1: Greedy</h3>
82165-
<p>We can greedily choose to use the armor skill in the round with the maximum damage. Suppose the maximum damage is $mx$, then we can avoid $min(mx, armor)$ damage, so the minimum life value we need is $sum(damage) - min(mx, armor) + 1$.</p>
82166-
<p>The time complexity is $O(n)$, where $n$ is the length of the <code>damage</code> array. The space complexity is $O(1)$.</p>
82165+
<p>We can greedily choose to use the armor skill in the round with the highest damage. Suppose the maximum damage is $\textit{mx}$, then we can avoid $\min(\textit{mx}, \textit{armor})$ damage. Therefore, the minimum health required is $\sum(\textit{damage}) - \min(\textit{mx}, \textit{armor}) + 1$.</p>
82166+
<p>The time complexity is $O(n)$, where $n$ is the length of the array $\textit{damage}$. The space complexity is $O(1)$.</p>
8216782167
<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>
8216882168
<div class="tabbed-content">
8216982169
<div class="tabbed-block">

en/lc/2243/index.html

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -54497,15 +54497,6 @@
5449754497
</span>
5449854498
</a>
5449954499

54500-
</li>
54501-
54502-
<li class="md-nav__item">
54503-
<a href="#solution-2" class="md-nav__link">
54504-
<span class="md-ellipsis">
54505-
Solution 2
54506-
</span>
54507-
</a>
54508-
5450954500
</li>
5451054501

5451154502
</ul>
@@ -82126,13 +82117,13 @@ <h2 id="description">Description</h2>
8212682117
<pre>
8212782118
<strong>Input:</strong> s = &quot;11111222223&quot;, k = 3
8212882119
<strong>Output:</strong> &quot;135&quot;
82129-
<strong>Explanation:</strong>
82120+
<strong>Explanation:</strong>
8213082121
- For the first round, we divide s into groups of size 3: &quot;111&quot;, &quot;112&quot;, &quot;222&quot;, and &quot;23&quot;.
82131-
​​​​​Then we calculate the digit sum of each group: 1 + 1 + 1 = 3, 1 + 1 + 2 = 4, 2 + 2 + 2 = 6, and 2 + 3 = 5.
82122+
​​​​​Then we calculate the digit sum of each group: 1 + 1 + 1 = 3, 1 + 1 + 2 = 4, 2 + 2 + 2 = 6, and 2 + 3 = 5.
8213282123
&nbsp; So, s becomes &quot;3&quot; + &quot;4&quot; + &quot;6&quot; + &quot;5&quot; = &quot;3465&quot; after the first round.
8213382124
- For the second round, we divide s into &quot;346&quot; and &quot;5&quot;.
82134-
&nbsp; Then we calculate the digit sum of each group: 3 + 4 + 6 = 13, 5 = 5.
82135-
&nbsp; So, s becomes &quot;13&quot; + &quot;5&quot; = &quot;135&quot; after second round.
82125+
&nbsp; Then we calculate the digit sum of each group: 3 + 4 + 6 = 13, 5 = 5.
82126+
&nbsp; So, s becomes &quot;13&quot; + &quot;5&quot; = &quot;135&quot; after second round.
8213682127
Now, s.length &lt;= k, so we return &quot;135&quot; as the answer.
8213782128
</pre>
8213882129

@@ -82141,9 +82132,9 @@ <h2 id="description">Description</h2>
8214182132
<pre>
8214282133
<strong>Input:</strong> s = &quot;00000000&quot;, k = 3
8214382134
<strong>Output:</strong> &quot;000&quot;
82144-
<strong>Explanation:</strong>
82135+
<strong>Explanation:</strong>
8214582136
We divide s into &quot;000&quot;, &quot;000&quot;, and &quot;00&quot;.
82146-
Then we calculate the digit sum of each group: 0 + 0 + 0 = 0, 0 + 0 + 0 = 0, and 0 + 0 = 0.
82137+
Then we calculate the digit sum of each group: 0 + 0 + 0 = 0, 0 + 0 + 0 = 0, and 0 + 0 = 0.
8214782138
s becomes &quot;0&quot; + &quot;0&quot; + &quot;0&quot; = &quot;000&quot;, whose length is equal to k, so we return &quot;000&quot;.
8214882139
</pre>
8214982140

@@ -82326,35 +82317,6 @@ <h3 id="solution-1">Solution 1</h3>
8232682317
</div>
8232782318
<!-- solution:end -->
8232882319

82329-
<!-- solution:start -->
82330-
82331-
<h3 id="solution-2">Solution 2</h3>
82332-
<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>
82333-
<div class="tabbed-content">
82334-
<div class="tabbed-block">
82335-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
82336-
<span class="normal">2</span>
82337-
<span class="normal">3</span>
82338-
<span class="normal">4</span>
82339-
<span class="normal">5</span>
82340-
<span class="normal">6</span>
82341-
<span class="normal">7</span>
82342-
<span class="normal">8</span>
82343-
<span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="p">:</span>
82344-
<span class="k">def</span><span class="w"> </span><span class="nf">digitSum</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="n">k</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
82345-
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="n">k</span><span class="p">:</span>
82346-
<span class="k">return</span> <span class="n">s</span>
82347-
<span class="n">t</span> <span class="o">=</span> <span class="p">[]</span>
82348-
<span class="k">while</span> <span class="n">s</span><span class="p">:</span>
82349-
<span class="n">t</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="nb">sum</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">s</span><span class="p">[:</span><span class="n">k</span><span class="p">])))</span>
82350-
<span class="n">s</span> <span class="o">=</span> <span class="n">s</span><span class="p">[</span><span class="n">k</span><span class="p">:]</span>
82351-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">digitSum</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">t</span><span class="p">),</span> <span class="n">k</span><span class="p">)</span>
82352-
</code></pre></div></td></tr></table></div>
82353-
</div>
82354-
</div>
82355-
</div>
82356-
<!-- solution:end -->
82357-
8235882320
<!-- problem:end -->
8235982321

8236082322

en/lc/2920/index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82135,21 +82135,21 @@ <h2 id="description">Description</h2>
8213582135
<p><a class="glightbox" href="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/images/ex1-copy.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="" src="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/images/ex1-copy.png" style="width: 60px; height: 316px; padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem;" /></a></p>
8213682136
<pre>
8213782137
<strong>Input:</strong> edges = [[0,1],[1,2],[2,3]], coins = [10,10,3,3], k = 5
82138-
<strong>Output:</strong> 11
82139-
<strong>Explanation:</strong>
82138+
<strong>Output:</strong> 11
82139+
<strong>Explanation:</strong>
8214082140
Collect all the coins from node 0 using the first way. Total points = 10 - 5 = 5.
8214182141
Collect all the coins from node 1 using the first way. Total points = 5 + (10 - 5) = 10.
8214282142
Collect all the coins from node 2 using the second way so coins left at node 3 will be floor(3 / 2) = 1. Total points = 10 + floor(3 / 2) = 11.
8214382143
Collect all the coins from node 3 using the second way. Total points = 11 + floor(1 / 2) = 11.
82144-
It can be shown that the maximum points we can get after collecting coins from all the nodes is 11.
82144+
It can be shown that the maximum points we can get after collecting coins from all the nodes is 11.
8214582145
</pre>
8214682146

8214782147
<p><strong class="example">Example 2:</strong></p>
8214882148
<p><strong class="example"> <a class="glightbox" href="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/images/ex2.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="" src="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/images/ex2.png" style="width: 140px; height: 147px; padding: 10px; background: #fff; border-radius: .5rem;" /></a></strong></p>
8214982149
<pre>
8215082150
<strong>Input:</strong> edges = [[0,1],[0,2]], coins = [8,4,4], k = 0
8215182151
<strong>Output:</strong> 16
82152-
<strong>Explanation:</strong>
82152+
<strong>Explanation:</strong>
8215382153
Coins will be collected from all the nodes using the first way. Therefore, total points = (8 - 0) + (4 - 0) + (4 - 0) = 16.
8215482154
</pre>
8215582155

@@ -82346,7 +82346,7 @@ <h3 id="solution-1-memoization-search">Solution 1: Memoization Search</h3>
8234682346
<span class="w"> </span><span class="n">g</span><span class="p">[</span><span class="n">a</span><span class="p">].</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">b</span><span class="p">);</span>
8234782347
<span class="w"> </span><span class="n">g</span><span class="p">[</span><span class="n">b</span><span class="p">].</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">a</span><span class="p">);</span>
8234882348
<span class="w"> </span><span class="p">}</span>
82349-
<span class="w"> </span><span class="n">function</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">(</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="o">&gt;</span><span class="w"> </span><span class="n">dfs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">&amp;</span><span class="p">](</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fa</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82349+
<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">dfs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">&amp;</span><span class="p">](</span><span class="k">this</span><span class="w"> </span><span class="k">auto</span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">dfs</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fa</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
8235082350
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</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="p">{</span>
8235182351
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">];</span>
8235282352
<span class="w"> </span><span class="p">}</span>

en/search/search_index.json

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

0 commit comments

Comments
 (0)