mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
76 lines
5.1 KiB
HTML
76 lines
5.1 KiB
HTML
<p>给你一个二维数组 <code>edges</code> 表示一个 <code>n</code> 个点的无向图,其中 <code>edges[i] = [u<sub>i</sub>, v<sub>i</sub>, length<sub>i</sub>]</code> 表示节点 <code>u<sub>i</sub></code> 和节点 <code>v<sub>i</sub></code> 之间有一条需要 <code>length<sub>i</sub></code> 单位时间通过的无向边。</p>
|
||
|
||
<p>同时给你一个数组 <code>disappear</code> ,其中 <code>disappear[i]</code> 表示节点 <code>i</code> 从图中消失的时间点,在那一刻及以后,你无法再访问这个节点。</p>
|
||
|
||
<p><strong>注意</strong>,图有可能一开始是不连通的,两个节点之间也可能有多条边。</p>
|
||
|
||
<p>请你返回数组 <code>answer</code> ,<code>answer[i]</code> 表示从节点 <code>0</code> 到节点 <code>i</code> 需要的 <strong>最少</strong> 单位时间。如果从节点 <code>0</code> 出发 <strong>无法</strong> 到达节点 <code>i</code> ,那么 <code>answer[i]</code> 为 <code>-1</code> 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<p><img 10px="" alt="" padding:="" src="https://assets.leetcode.com/uploads/2024/03/09/example1.png" style="width: 350px; height: 210px;" /></p>
|
||
|
||
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
|
||
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">n = 3, edges = [[0,1,2],[1,2,1],[0,2,4]], disappear = [1,1,5]</span></p>
|
||
|
||
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">[0,-1,4]</span></p>
|
||
|
||
<p style="font-size: 0.875rem;"><strong>解释:</strong></p>
|
||
|
||
<p style="font-size: 0.875rem;">我们从节点 0 出发,目的是用最少的时间在其他节点消失之前到达它们。</p>
|
||
|
||
<ul style="font-size: 0.875rem;">
|
||
<li>对于节点 0 ,我们不需要任何时间,因为它就是我们的起点。</li>
|
||
<li>对于节点 1 ,我们需要至少 2 单位时间,通过 <code>edges[0]</code> 到达。但当我们到达的时候,它已经消失了,所以我们无法到达它。</li>
|
||
<li>对于节点 2 ,我们需要至少 4 单位时间,通过 <code>edges[2]</code> 到达。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<p><img 10px="" alt="" padding:="" src="https://assets.leetcode.com/uploads/2024/03/09/example2.png" style="width: 350px; height: 210px;" /></p>
|
||
|
||
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
|
||
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">n = 3, edges = [[0,1,2],[1,2,1],[0,2,4]], disappear = [1,3,5]</span></p>
|
||
|
||
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">[0,2,3]</span></p>
|
||
|
||
<p style="font-size: 0.875rem;"><strong>解释:</strong></p>
|
||
|
||
<p style="font-size: 0.875rem;">我们从节点 0 出发,目的是用最少的时间在其他节点消失之前到达它们。</p>
|
||
|
||
<ul style="font-size: 0.875rem;">
|
||
<li>对于节点 0 ,我们不需要任何时间,因为它就是我们的起点。</li>
|
||
<li>对于节点 1 ,我们需要至少 2 单位时间,通过 <code>edges[0]</code> 到达。</li>
|
||
<li>对于节点 2 ,我们需要至少 3 单位时间,通过 <code>edges[0]</code> 和 <code>edges[1]</code> 到达。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 3:</strong></p>
|
||
|
||
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
|
||
<p><span class="example-io"><b>输入:</b>n = 2, edges = [[0,1,1]], disappear = [1,1]</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>[0,-1]</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>当我们到达节点 1 的时候,它恰好消失,所以我们无法到达节点 1 。</p>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= n <= 5 * 10<sup>4</sup></code></li>
|
||
<li><code>0 <= edges.length <= 10<sup>5</sup></code></li>
|
||
<li><code>edges[i] == [u<sub>i</sub>, v<sub>i</sub>, length<sub>i</sub>]</code></li>
|
||
<li><code>0 <= u<sub>i</sub>, v<sub>i</sub> <= n - 1</code></li>
|
||
<li><code>1 <= length<sub>i</sub> <= 10<sup>5</sup></code></li>
|
||
<li><code>disappear.length == n</code></li>
|
||
<li><code>1 <= disappear[i] <= 10<sup>5</sup></code></li>
|
||
</ul>
|