Skip to content

Commit 2eac8fe

Browse files
committed
deploy: ee2f5e3
1 parent 118f223 commit 2eac8fe

File tree

7 files changed

+563
-391
lines changed

7 files changed

+563
-391
lines changed

en/lc/1529/index.html

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77433,6 +77433,36 @@ <h3 id="solution-1">Solution 1</h3>
7743377433

7743477434

7743577435

77436+
<aside class="md-source-file">
77437+
77438+
77439+
77440+
77441+
77442+
<span class="md-source-file__fact">
77443+
77444+
77445+
<span class="md-icon" title="Contributors">
77446+
<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>
77447+
</span>
77448+
<span>GitHub</span>
77449+
77450+
77451+
<nav>
77452+
77453+
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
77454+
77455+
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
77456+
</a>
77457+
77458+
77459+
77460+
</nav>
77461+
</span>
77462+
77463+
77464+
</aside>
77465+
7743677466

7743777467

7743877468

en/lc/2196/index.html

Lines changed: 204 additions & 187 deletions
Large diffs are not rendered by default.

en/lc/3112/index.html

Lines changed: 64 additions & 10 deletions
Large diffs are not rendered by default.

en/search/search_index.json

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

lc/2196/index.html

Lines changed: 203 additions & 186 deletions
Large diffs are not rendered by default.

lc/3112/index.html

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81963,17 +81963,17 @@ <h2 id="_2">解法</h2>
8196381963
<!-- solution:start -->
8196481964

8196581965
<h3 id="dijkstra">方法一:堆优化的 Dijkstra</h3>
81966-
<p>我们先创建一个邻接表 $g$,用于存储图的边。然后创建一个数组 $dist$,用于存储从节点 $0$ 到其他节点的最短距离。初始化 $dist[0] = 0$,其余节点的距离初始化为无穷大。</p>
81966+
<p>我们先创建一个邻接表 $\textit{g}$,用于存储图的边。然后创建一个数组 $\textit{dist}$,用于存储从节点 $0$ 到其他节点的最短距离。初始化 $\textit{dist}[0] = 0$,其余节点的距离初始化为无穷大。</p>
8196781967
<p>然后,我们使用 Dijkstra 算法计算从节点 $0$ 到其他节点的最短距离。具体步骤如下:</p>
8196881968
<ol>
81969-
<li>创建一个优先队列 $q$,用于存储节点的距离和节点编号,初始时将节点 $0$ 加入队列,距离为 $0$。</li>
81970-
<li>从队列中取出一个节点 $u$,如果 $u$ 的距离 $du$ 大于 $dist[u]$,说明 $u$ 已经被更新过了,直接跳过。</li>
81971-
<li>遍历节点 $u$ 的所有邻居节点 $v$,如果 $dist[v] &gt; dist[u] + w$ 且 $dist[u] + w &lt; disappear[v]$,则更新 $dist[v] = dist[u] + w$,并将节点 $v$ 加入队列。</li>
81969+
<li>创建一个优先队列 $\textit{pq}$,用于存储节点的距离和节点编号,初始时将节点 $0$ 加入队列,距离为 $0$。</li>
81970+
<li>从队列中取出一个节点 $u$,如果 $u$ 的距离 $du$ 大于 $\textit{dist}[u]$,说明 $u$ 已经被更新过了,直接跳过。</li>
81971+
<li>遍历节点 $u$ 的所有邻居节点 $v$,如果 $\textit{dist}[v] &gt; \textit{dist}[u] + w$ 且 $\textit{dist}[u] + w &lt; \textit{disappear}[v]$,则更新 $\textit{dist}[v] = \textit{dist}[u] + w$,并将节点 $v$ 加入队列。</li>
8197281972
<li>重复步骤 2 和步骤 3,直到队列为空。</li>
8197381973
</ol>
81974-
<p>最后,我们遍历 $dist$ 数组,如果 $dist[i] &lt; disappear[i]$,则 $answer[i] = dist[i]$,否则 $answer[i] = -1$。</p>
81974+
<p>最后,我们遍历 $\textit{dist}$ 数组,如果 $\textit{dist}[i] &lt; \textit{disappear}[i]$,则 $\textit{answer}[i] = \textit{dist}[i]$,否则 $\textit{answer}[i] = -1$。</p>
8197581975
<p>时间复杂度 $O(m \times \log m)$,空间复杂度 $O(m)$。其中 $m$ 是边的数量。</p>
81976-
<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>
81976+
<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>
8197781977
<div class="tabbed-content">
8197881978
<div class="tabbed-block">
8197981979
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -82281,6 +82281,60 @@ <h3 id="dijkstra">方法一:堆优化的 Dijkstra</h3>
8228182281
<span class="kd">func</span><span class="w"> </span><span class="p">(</span><span class="nx">h</span><span class="w"> </span><span class="o">*</span><span class="nx">hp</span><span class="p">)</span><span class="w"> </span><span class="nx">Pop</span><span class="p">()</span><span class="w"> </span><span class="kt">any</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="o">*</span><span class="nx">h</span><span class="p">;</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">a</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">];</span><span class="w"> </span><span class="o">*</span><span class="nx">h</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">a</span><span class="p">[:</span><span class="nb">len</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">];</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">v</span><span class="w"> </span><span class="p">}</span>
8228282282
</code></pre></div></td></tr></table></div>
8228382283
</div>
82284+
<div class="tabbed-block">
82285+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
82286+
<span class="normal"> 2</span>
82287+
<span class="normal"> 3</span>
82288+
<span class="normal"> 4</span>
82289+
<span class="normal"> 5</span>
82290+
<span class="normal"> 6</span>
82291+
<span class="normal"> 7</span>
82292+
<span class="normal"> 8</span>
82293+
<span class="normal"> 9</span>
82294+
<span class="normal">10</span>
82295+
<span class="normal">11</span>
82296+
<span class="normal">12</span>
82297+
<span class="normal">13</span>
82298+
<span class="normal">14</span>
82299+
<span class="normal">15</span>
82300+
<span class="normal">16</span>
82301+
<span class="normal">17</span>
82302+
<span class="normal">18</span>
82303+
<span class="normal">19</span>
82304+
<span class="normal">20</span>
82305+
<span class="normal">21</span>
82306+
<span class="normal">22</span>
82307+
<span class="normal">23</span>
82308+
<span class="normal">24</span>
82309+
<span class="normal">25</span>
82310+
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">minimumTime</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">edges</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">disappear</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">number</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span>
82311+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">g</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">][][]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">.</span><span class="kr">from</span><span class="p">({</span><span class="w"> </span><span class="nx">length</span><span class="o">:</span><span class="w"> </span><span class="kt">n</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">[]);</span>
82312+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">u</span><span class="p">,</span><span class="w"> </span><span class="nx">v</span><span class="p">,</span><span class="w"> </span><span class="nx">w</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">edges</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82313+
<span class="w"> </span><span class="nx">g</span><span class="p">[</span><span class="nx">u</span><span class="p">].</span><span class="nx">push</span><span class="p">([</span><span class="nx">v</span><span class="p">,</span><span class="w"> </span><span class="nx">w</span><span class="p">]);</span>
82314+
<span class="w"> </span><span class="nx">g</span><span class="p">[</span><span class="nx">v</span><span class="p">].</span><span class="nx">push</span><span class="p">([</span><span class="nx">u</span><span class="p">,</span><span class="w"> </span><span class="nx">w</span><span class="p">]);</span>
82315+
<span class="w"> </span><span class="p">}</span>
82316+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">dist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">.</span><span class="kr">from</span><span class="p">({</span><span class="w"> </span><span class="nx">length</span><span class="o">:</span><span class="w"> </span><span class="kt">n</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="kc">Infinity</span><span class="p">);</span>
82317+
<span class="w"> </span><span class="nx">dist</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
82318+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">pq</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">PriorityQueue</span><span class="p">({</span>
82319+
<span class="w"> </span><span class="nx">compare</span><span class="o">:</span><span class="w"> </span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">b</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">a</span><span class="p">[</span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">[</span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="nx">a</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">[</span><span class="mf">0</span><span class="p">]),</span>
82320+
<span class="w"> </span><span class="p">});</span>
82321+
<span class="w"> </span><span class="nx">pq</span><span class="p">.</span><span class="nx">enqueue</span><span class="p">([</span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">]);</span>
82322+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">pq</span><span class="p">.</span><span class="nx">size</span><span class="p">()</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82323+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">du</span><span class="p">,</span><span class="w"> </span><span class="nx">u</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">pq</span><span class="p">.</span><span class="nx">dequeue</span><span class="p">()</span><span class="o">!</span><span class="p">;</span>
82324+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">du</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">dist</span><span class="p">[</span><span class="nx">u</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
82325+
<span class="w"> </span><span class="k">continue</span><span class="p">;</span>
82326+
<span class="w"> </span><span class="p">}</span>
82327+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">v</span><span class="p">,</span><span class="w"> </span><span class="nx">w</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">g</span><span class="p">[</span><span class="nx">u</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
82328+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">dist</span><span class="p">[</span><span class="nx">v</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">dist</span><span class="p">[</span><span class="nx">u</span><span class="p">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">w</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nx">dist</span><span class="p">[</span><span class="nx">u</span><span class="p">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">w</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">disappear</span><span class="p">[</span><span class="nx">v</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
82329+
<span class="w"> </span><span class="nx">dist</span><span class="p">[</span><span class="nx">v</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">dist</span><span class="p">[</span><span class="nx">u</span><span class="p">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">w</span><span class="p">;</span>
82330+
<span class="w"> </span><span class="nx">pq</span><span class="p">.</span><span class="nx">enqueue</span><span class="p">([</span><span class="nx">dist</span><span class="p">[</span><span class="nx">v</span><span class="p">],</span><span class="w"> </span><span class="nx">v</span><span class="p">]);</span>
82331+
<span class="w"> </span><span class="p">}</span>
82332+
<span class="w"> </span><span class="p">}</span>
82333+
<span class="w"> </span><span class="p">}</span>
82334+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">dist</span><span class="p">.</span><span class="nx">map</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </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="p">(</span><span class="nx">a</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">disappear</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">));</span>
82335+
<span class="p">}</span>
82336+
</code></pre></div></td></tr></table></div>
82337+
</div>
8228482338
</div>
8228582339
</div>
8228682340
<!-- solution:end -->

0 commit comments

Comments
 (0)