Skip to content

Commit 7b3048d

Browse files
committed
deploy: 110e86a
1 parent 1dfbd89 commit 7b3048d

File tree

7 files changed

+115
-17
lines changed

7 files changed

+115
-17
lines changed

en/lc/753/index.html

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23171,9 +23171,9 @@
2317123171
<ul class="md-nav__list">
2317223172

2317323173
<li class="md-nav__item">
23174-
<a href="#solution-1" class="md-nav__link">
23174+
<a href="#solution-1-eulerian-circuit" class="md-nav__link">
2317523175
<span class="md-ellipsis">
23176-
Solution 1
23176+
Solution 1: Eulerian Circuit
2317723177
</span>
2317823178
</a>
2317923179

@@ -81817,8 +81817,11 @@ <h2 id="description">Description</h2>
8181781817
<h2 id="solutions">Solutions</h2>
8181881818
<!-- solution:start -->
8181981819

81820-
<h3 id="solution-1">Solution 1</h3>
81821-
<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>
81820+
<h3 id="solution-1-eulerian-circuit">Solution 1: Eulerian Circuit</h3>
81821+
<p>We can construct a directed graph based on the description in the problem: each point is considered as a length $n-1$ $k$-string, and each edge carries a character from $0$ to $k-1$. If there is a directed edge $e$ from point $u$ to point $v$, and the character carried by $e$ is $c$, then the last $k-1$ characters of $u+c$ form the string $v$. At this point, the edge $u+c$ represents a password of length $n$.</p>
81822+
<p>In this directed graph, there are $k^{n-1}$ points, each point has $k$ outgoing edges and $k$ incoming edges. Therefore, this directed graph has an Eulerian circuit, and the path traversed by the Eulerian circuit is the answer to the problem.</p>
81823+
<p>The time complexity is $O(k^n)$, and the space complexity is $O(k^n)$.</p>
81824+
<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>
8182281825
<div class="tabbed-content">
8182381826
<div class="tabbed-block">
8182481827
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -81990,6 +81993,50 @@ <h3 id="solution-1">Solution 1</h3>
8199081993
<span class="p">}</span>
8199181994
</code></pre></div></td></tr></table></div>
8199281995
</div>
81996+
<div class="tabbed-block">
81997+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
81998+
<span class="normal"> 2</span>
81999+
<span class="normal"> 3</span>
82000+
<span class="normal"> 4</span>
82001+
<span class="normal"> 5</span>
82002+
<span class="normal"> 6</span>
82003+
<span class="normal"> 7</span>
82004+
<span class="normal"> 8</span>
82005+
<span class="normal"> 9</span>
82006+
<span class="normal">10</span>
82007+
<span class="normal">11</span>
82008+
<span class="normal">12</span>
82009+
<span class="normal">13</span>
82010+
<span class="normal">14</span>
82011+
<span class="normal">15</span>
82012+
<span class="normal">16</span>
82013+
<span class="normal">17</span>
82014+
<span class="normal">18</span>
82015+
<span class="normal">19</span>
82016+
<span class="normal">20</span>
82017+
<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">crackSafe</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="nx">k</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="p">{</span>
82018+
<span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="nx">u</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
82019+
<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">x</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">x</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">k</span><span class="p">;</span><span class="w"> </span><span class="nx">x</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82020+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">e</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">u</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">10</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span>
82021+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="nx">vis</span><span class="p">.</span><span class="nx">has</span><span class="p">(</span><span class="nx">e</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
82022+
<span class="w"> </span><span class="nx">vis</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
82023+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">v</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">e</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="nx">mod</span><span class="p">;</span>
82024+
<span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="nx">v</span><span class="p">);</span>
82025+
<span class="w"> </span><span class="nx">ans</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">x</span><span class="p">.</span><span class="nx">toString</span><span class="p">());</span>
82026+
<span class="w"> </span><span class="p">}</span>
82027+
<span class="w"> </span><span class="p">}</span>
82028+
<span class="w"> </span><span class="p">}</span>
82029+
82030+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">mod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">(</span><span class="mf">10</span><span class="p">,</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">1</span><span class="p">);</span>
82031+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">vis</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Set</span><span class="o">&lt;</span><span class="kt">number</span><span class="o">&gt;</span><span class="p">();</span>
82032+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">ans</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[];</span>
82033+
82034+
<span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
82035+
<span class="w"> </span><span class="nx">ans</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="s1">&#39;0&#39;</span><span class="p">.</span><span class="nx">repeat</span><span class="p">(</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="p">));</span>
82036+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">);</span>
82037+
<span class="p">}</span>
82038+
</code></pre></div></td></tr></table></div>
82039+
</div>
8199382040
</div>
8199482041
</div>
8199582042
<!-- solution:end -->

en/lc/754/index.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23192,9 +23192,9 @@
2319223192
<ul class="md-nav__list">
2319323193

2319423194
<li class="md-nav__item">
23195-
<a href="#solution-1" class="md-nav__link">
23195+
<a href="#solution-1-mathematical-analysis" class="md-nav__link">
2319623196
<span class="md-ellipsis">
23197-
Solution 1
23197+
Solution 1: Mathematical Analysis
2319823198
</span>
2319923199
</a>
2320023200

@@ -81800,7 +81800,12 @@ <h2 id="description">Description</h2>
8180081800
<h2 id="solutions">Solutions</h2>
8180181801
<!-- solution:start -->
8180281802

81803-
<h3 id="solution-1">Solution 1</h3>
81803+
<h3 id="solution-1-mathematical-analysis">Solution 1: Mathematical Analysis</h3>
81804+
<p>Due to symmetry, each time we can choose to move left or right, so we can take the absolute value of $\textit{target}$.</p>
81805+
<p>Define $s$ as the current position, and use the variable $k$ to record the number of moves. Initially, both $s$ and $k$ are $0$.</p>
81806+
<p>We keep adding to $s$ in a loop until $s \ge \textit{target}$ and $(s - \textit{target}) \bmod 2 = 0$. At this point, the number of moves $k$ is the answer, and we return it directly.</p>
81807+
<p>Why? Because if $s \ge \textit{target}$ and $(s - \textit{target}) \bmod 2 = 0$, we only need to change the sign of the positive integer $\frac{s - \textit{target}}{2}$ to negative, so that $s$ equals $\textit{target}$. Changing the sign of a positive integer essentially means changing the direction of the move, but the actual number of moves remains the same.</p>
81808+
<p>The time complexity is $O(\sqrt{\left | \textit{target} \right | })$, and the space complexity is $O(1)$.</p>
8180481809
<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">JavaScript</label></div>
8180581810
<div class="tabbed-content">
8180681811
<div class="tabbed-block">

en/lc/755/index.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23213,9 +23213,9 @@
2321323213
<ul class="md-nav__list">
2321423214

2321523215
<li class="md-nav__item">
23216-
<a href="#solution-1" class="md-nav__link">
23216+
<a href="#solution-1-simulation" class="md-nav__link">
2321723217
<span class="md-ellipsis">
23218-
Solution 1
23218+
Solution 1: Simulation
2321923219
</span>
2322023220
</a>
2322123221

@@ -81816,7 +81816,9 @@ <h2 id="description">Description</h2>
8181681816
<h2 id="solutions">Solutions</h2>
8181781817
<!-- solution:start -->
8181881818

81819-
<h3 id="solution-1">Solution 1</h3>
81819+
<h3 id="solution-1-simulation">Solution 1: Simulation</h3>
81820+
<p>We can simulate the process of each unit of water dropping. Each time a drop falls, we first try to move left. If it can move to a lower height, it moves to the lowest height; if it cannot move to a lower height, we try to move right. If it can move to a lower height, it moves to the lowest height; if it cannot move to a lower height, it rises at the current position.</p>
81821+
<p>The time complexity is $O(v \times n)$, and the space complexity is $O(1)$, where $v$ and $n$ are the number of water drops and the length of the height array, respectively.</p>
8182081822
<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>
8182181823
<div class="tabbed-content">
8182281824
<div class="tabbed-block">

en/search/search_index.json

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

0 commit comments

Comments
 (0)