Skip to content

Commit 8e795f0

Browse files
committed
deploy: 7a355b5
1 parent 00cef44 commit 8e795f0

File tree

16 files changed

+546
-14
lines changed

16 files changed

+546
-14
lines changed

en/lcci/8.1/index.html

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75308,7 +75308,7 @@ <h3 id="solution-1-recursion">Solution 1: Recursion</h3>
7530875308
<p>The recursion formula is $f[i] = f[i-1] + f[i-2] + f[i-3]$.</p>
7530975309
<p>Since $f[i]$ is only related to $f[i-1]$, $f[i-2]$, $f[i-3]$, we can use three variables $a$, $b$, $c$ to store the values of $f[i-1]$, $f[i-2]$, $f[i-3]$, reducing the space complexity to $O(1)$.</p>
7531075310
<p>The time complexity is $O(n)$, where $n$ is the given integer. The space complexity is $O(1)$.</p>
75311-
<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">Rust</label><label for="__tabbed_1_6">JavaScript</label><label for="__tabbed_1_7">C</label></div>
75311+
<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">Rust</label><label for="__tabbed_1_6">JavaScript</label><label for="__tabbed_1_7">C</label><label for="__tabbed_1_8">Swift</label></div>
7531275312
<div class="tabbed-content">
7531375313
<div class="tabbed-block">
7531475314
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -75480,6 +75480,42 @@ <h3 id="solution-1-recursion">Solution 1: Recursion</h3>
7548075480
<span class="p">}</span>
7548175481
</code></pre></div></td></tr></table></div>
7548275482
</div>
75483+
<div class="tabbed-block">
75484+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75485+
<span class="normal"> 2</span>
75486+
<span class="normal"> 3</span>
75487+
<span class="normal"> 4</span>
75488+
<span class="normal"> 5</span>
75489+
<span class="normal"> 6</span>
75490+
<span class="normal"> 7</span>
75491+
<span class="normal"> 8</span>
75492+
<span class="normal"> 9</span>
75493+
<span class="normal">10</span>
75494+
<span class="normal">11</span>
75495+
<span class="normal">12</span>
75496+
<span class="normal">13</span>
75497+
<span class="normal">14</span>
75498+
<span class="normal">15</span>
75499+
<span class="normal">16</span>
75500+
<span class="normal">17</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>
75501+
<span class="kd">func</span> <span class="nf">waysToStep</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">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
75502+
<span class="kd">let</span> <span class="nv">mod</span> <span class="p">=</span> <span class="nb">Int</span><span class="p">(</span><span class="mf">1e9</span><span class="p">)</span> <span class="o">+</span> <span class="mi">7</span>
75503+
<span class="kd">var</span> <span class="nv">a</span> <span class="p">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">b</span> <span class="p">=</span> <span class="mi">2</span><span class="p">,</span> <span class="n">c</span> <span class="p">=</span> <span class="mi">4</span>
75504+
<span class="k">if</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">1</span> <span class="p">{</span> <span class="k">return</span> <span class="n">a</span> <span class="p">}</span>
75505+
<span class="k">if</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">2</span> <span class="p">{</span> <span class="k">return</span> <span class="n">b</span> <span class="p">}</span>
75506+
<span class="k">if</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">3</span> <span class="p">{</span> <span class="k">return</span> <span class="n">c</span> <span class="p">}</span>
75507+
75508+
<span class="k">for</span> <span class="kc">_</span> <span class="k">in</span> <span class="mf">1.</span><span class="p">.&lt;</span><span class="n">n</span> <span class="p">{</span>
75509+
<span class="kd">let</span> <span class="nv">t</span> <span class="p">=</span> <span class="n">a</span>
75510+
<span class="n">a</span> <span class="p">=</span> <span class="n">b</span>
75511+
<span class="n">b</span> <span class="p">=</span> <span class="n">c</span>
75512+
<span class="n">c</span> <span class="p">=</span> <span class="p">((</span><span class="n">a</span> <span class="o">+</span> <span class="n">b</span><span class="p">)</span> <span class="o">%</span> <span class="n">mod</span> <span class="o">+</span> <span class="n">t</span><span class="p">)</span> <span class="o">%</span> <span class="n">mod</span>
75513+
<span class="p">}</span>
75514+
<span class="k">return</span> <span class="n">a</span>
75515+
<span class="p">}</span>
75516+
<span class="p">}</span>
75517+
</code></pre></div></td></tr></table></div>
75518+
</div>
7548375519
</div>
7548475520
</div>
7548575521
<h3 id="solution-2-matrix-quick-power-to-accelerate-recursion">Solution 2: Matrix Quick Power to Accelerate Recursion</h3>
@@ -75979,6 +76015,11 @@ <h3 id="solution-2-matrix-quick-power-to-accelerate-recursion">Solution 2: Matri
7597976015

7598076016
<nav>
7598176017

76018+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
76019+
76020+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
76021+
</a>
76022+
7598276023
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
7598376024

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

en/lcci/8.2/index.html

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75297,7 +75297,7 @@ <h3 id="solution-1-dfs-depth-first-search">Solution 1: DFS (Depth-First Search)<
7529775297
<p>We can use depth-first search to solve this problem. We start from the top left corner and move right or down until we reach the bottom right corner. If at some step, we find that the current position is an obstacle, or the current position is already in the path, then we return. Otherwise, we add the current position to the path and mark the current position as visited, then continue to move right or down.</p>
7529875298
<p>If we can finally reach the bottom right corner, then we have found a feasible path, otherwise, it means there is no feasible path.</p>
7529975299
<p>The time complexity is $O(m \times n)$, and the space complexity is $O(m \times n)$. Here, $m$ and $n$ are the number of rows and columns of the grid, respectively.</p>
75300-
<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>
75300+
<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">Swift</label></div>
7530175301
<div class="tabbed-content">
7530275302
<div class="tabbed-block">
7530375303
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -75571,6 +75571,60 @@ <h3 id="solution-1-dfs-depth-first-search">Solution 1: DFS (Depth-First Search)<
7557175571
<span class="p">}</span>
7557275572
</code></pre></div></td></tr></table></div>
7557375573
</div>
75574+
<div class="tabbed-block">
75575+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75576+
<span class="normal"> 2</span>
75577+
<span class="normal"> 3</span>
75578+
<span class="normal"> 4</span>
75579+
<span class="normal"> 5</span>
75580+
<span class="normal"> 6</span>
75581+
<span class="normal"> 7</span>
75582+
<span class="normal"> 8</span>
75583+
<span class="normal"> 9</span>
75584+
<span class="normal">10</span>
75585+
<span class="normal">11</span>
75586+
<span class="normal">12</span>
75587+
<span class="normal">13</span>
75588+
<span class="normal">14</span>
75589+
<span class="normal">15</span>
75590+
<span class="normal">16</span>
75591+
<span class="normal">17</span>
75592+
<span class="normal">18</span>
75593+
<span class="normal">19</span>
75594+
<span class="normal">20</span>
75595+
<span class="normal">21</span>
75596+
<span class="normal">22</span>
75597+
<span class="normal">23</span>
75598+
<span class="normal">24</span>
75599+
<span class="normal">25</span>
75600+
<span class="normal">26</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>
75601+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">ans</span> <span class="p">=</span> <span class="p">[[</span><span class="nb">Int</span><span class="p">]]()</span>
75602+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">g</span><span class="p">:</span> <span class="p">[[</span><span class="nb">Int</span><span class="p">]]</span> <span class="p">=</span> <span class="p">[]</span>
75603+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">m</span><span class="p">:</span> <span class="nb">Int</span> <span class="p">=</span> <span class="mi">0</span>
75604+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">n</span><span class="p">:</span> <span class="nb">Int</span> <span class="p">=</span> <span class="mi">0</span>
75605+
75606+
<span class="kd">func</span> <span class="nf">pathWithObstacles</span><span class="p">(</span><span class="kc">_</span> <span class="n">obstacleGrid</span><span class="p">:</span> <span class="p">[[</span><span class="nb">Int</span><span class="p">]])</span> <span class="p">-&gt;</span> <span class="p">[[</span><span class="nb">Int</span><span class="p">]]</span> <span class="p">{</span>
75607+
<span class="n">g</span> <span class="p">=</span> <span class="n">obstacleGrid</span>
75608+
<span class="n">m</span> <span class="p">=</span> <span class="n">g</span><span class="p">.</span><span class="bp">count</span>
75609+
<span class="n">n</span> <span class="p">=</span> <span class="n">g</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="bp">count</span>
75610+
<span class="k">return</span> <span class="n">dfs</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">?</span> <span class="n">ans</span> <span class="p">:</span> <span class="p">[]</span>
75611+
<span class="p">}</span>
75612+
75613+
<span class="kd">private</span> <span class="kd">func</span> <span class="nf">dfs</span><span class="p">(</span><span class="kc">_</span> <span class="n">i</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">j</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Bool</span> <span class="p">{</span>
75614+
<span class="k">if</span> <span class="n">i</span> <span class="o">&gt;=</span> <span class="n">m</span> <span class="o">||</span> <span class="n">j</span> <span class="o">&gt;=</span> <span class="n">n</span> <span class="o">||</span> <span class="n">g</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="p">==</span> <span class="mi">1</span> <span class="p">{</span>
75615+
<span class="k">return</span> <span class="kc">false</span>
75616+
<span class="p">}</span>
75617+
<span class="n">ans</span><span class="p">.</span><span class="n">append</span><span class="p">([</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">])</span>
75618+
<span class="n">g</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="p">=</span> <span class="mi">1</span>
75619+
<span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="p">==</span> <span class="n">m</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="n">j</span> <span class="p">==</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">||</span> <span class="n">dfs</span><span class="p">(</span><span class="n">i</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="o">||</span> <span class="n">dfs</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
75620+
<span class="k">return</span> <span class="kc">true</span>
75621+
<span class="p">}</span>
75622+
<span class="n">ans</span><span class="p">.</span><span class="bp">removeLast</span><span class="p">()</span>
75623+
<span class="k">return</span> <span class="kc">false</span>
75624+
<span class="p">}</span>
75625+
<span class="p">}</span>
75626+
</code></pre></div></td></tr></table></div>
75627+
</div>
7557475628
</div>
7557575629
</div>
7557675630
<!-- end -->
@@ -75602,6 +75656,11 @@ <h3 id="solution-1-dfs-depth-first-search">Solution 1: DFS (Depth-First Search)<
7560275656

7560375657
<nav>
7560475658

75659+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
75660+
75661+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
75662+
</a>
75663+
7560575664
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
7560675665

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

0 commit comments

Comments
 (0)