1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/逃离火灾 [escape-the-spreading-fire].html

63 lines
3.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>给你一个下标从 <strong>0</strong>&nbsp;开始大小为 <code>m x n</code>&nbsp;的二维整数数组&nbsp;<code>grid</code>&nbsp;,它表示一个网格图。每个格子为下面 3 个值之一:</p>
<ul>
<li><code>0</code> 表示草地。</li>
<li><code>1</code> 表示着火的格子。</li>
<li><code>2</code>&nbsp;表示一座墙,你跟火都不能通过这个格子。</li>
</ul>
<p>一开始你在最左上角的格子&nbsp;<code>(0, 0)</code>&nbsp;,你想要到达最右下角的安全屋格子&nbsp;<code>(m - 1, n - 1)</code>&nbsp;。每一分钟,你可以移动到&nbsp;<strong>相邻</strong>&nbsp;的草地格子。每次你移动 <strong>之后</strong>&nbsp;,着火的格子会扩散到所有不是墙的 <strong>相邻</strong>&nbsp;格子。</p>
<p>请你返回你在初始位置可以停留的 <strong>最多 </strong>分钟数,且停留完这段时间后你还能安全到达安全屋。如果无法实现,请你返回 <code>-1</code>&nbsp;。如果不管你在初始位置停留多久,你 <strong>总是</strong>&nbsp;能到达安全屋,请你返回&nbsp;<code>10<sup>9</sup></code>&nbsp;</p>
<p>注意,如果你到达安全屋后,火马上到了安全屋,这视为你能够安全到达安全屋。</p>
<p>如果两个格子有共同边,那么它们为 <strong>相邻</strong>&nbsp;格子。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/03/10/ex1new.jpg" style="width: 650px; height: 404px;"></p>
<pre><b>输入:</b>grid = [[0,2,0,0,0,0,0],[0,0,0,2,2,1,0],[0,2,0,0,1,2,0],[0,0,2,2,2,0,2],[0,0,0,0,0,0,0]]
<b>输出:</b>3
<b>解释:</b>上图展示了你在初始位置停留 3 分钟后的情形。
你仍然可以安全到达安全屋。
停留超过 3 分钟会让你无法安全到达安全屋。</pre>
<p><strong>示例 2</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/03/10/ex2new2.jpg" style="width: 515px; height: 150px;"></p>
<pre><b>输入:</b>grid = [[0,0,0,0],[0,1,2,0],[0,2,0,0]]
<b>输出:</b>-1
<b>解释:</b>上图展示了你马上开始朝安全屋移动的情形。
火会蔓延到你可以移动的所有格子,所以无法安全到达安全屋。
所以返回 -1 。
</pre>
<p><strong>示例 3</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/03/10/ex3new.jpg" style="width: 174px; height: 150px;"></p>
<pre><b>输入:</b>grid = [[0,0,0],[2,2,0],[1,2,0]]
<b>输出:</b>1000000000
<b>解释:</b>上图展示了初始网格图。
注意,由于火被墙围了起来,所以无论如何你都能安全到达安全屋。
所以返回 10<sup>9</sup>
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>m == grid.length</code></li>
<li><code>n == grid[i].length</code></li>
<li><code>2 &lt;= m, n &lt;= 300</code></li>
<li><code>4 &lt;= m * n &lt;= 2 * 10<sup>4</sup></code></li>
<li><code>grid[i][j]</code>&nbsp;&nbsp;<code>0</code>&nbsp;<code>1</code>&nbsp;或者&nbsp;<code>2</code>&nbsp;</li>
<li><code>grid[0][0] == grid[m - 1][n - 1] == 0</code></li>
</ul>