mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
53 lines
2.9 KiB
HTML
53 lines
2.9 KiB
HTML
<p>给你一个 <code>m x n</code> 的迷宫矩阵 <code>maze</code> (<strong>下标从 0 开始</strong>),矩阵中有空格子(用 <code>'.'</code> 表示)和墙(用 <code>'+'</code> 表示)。同时给你迷宫的入口 <code>entrance</code> ,用 <code>entrance = [entrance<sub>row</sub>, entrance<sub>col</sub>]</code> 表示你一开始所在格子的行和列。</p>
|
||
|
||
<p>每一步操作,你可以往 <strong>上</strong>,<strong>下</strong>,<strong>左</strong> 或者 <strong>右</strong> 移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。你的目标是找到离 <code>entrance</code> <strong>最近</strong> 的出口。<strong>出口</strong> 的含义是 <code>maze</code> <strong>边界</strong> 上的 <strong>空格子</strong>。<code>entrance</code> 格子 <strong>不算</strong> 出口。</p>
|
||
|
||
<p>请你返回从 <code>entrance</code> 到最近出口的最短路径的 <strong>步数</strong> ,如果不存在这样的路径,请你返回 <code>-1</code> 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
<img alt="" src="https://assets.leetcode.com/uploads/2021/06/04/nearest1-grid.jpg" style="width: 333px; height: 253px;">
|
||
<pre><b>输入:</b>maze = [["+","+",".","+"],[".",".",".","+"],["+","+","+","."]], entrance = [1,2]
|
||
<b>输出:</b>1
|
||
<b>解释:</b>总共有 3 个出口,分别位于 (1,0),(0,2) 和 (2,3) 。
|
||
一开始,你在入口格子 (1,2) 处。
|
||
- 你可以往左移动 2 步到达 (1,0) 。
|
||
- 你可以往上移动 1 步到达 (0,2) 。
|
||
从入口处没法到达 (2,3) 。
|
||
所以,最近的出口是 (0,2) ,距离为 1 步。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
<img alt="" src="https://assets.leetcode.com/uploads/2021/06/04/nearesr2-grid.jpg" style="width: 253px; height: 253px;">
|
||
<pre><b>输入:</b>maze = [["+","+","+"],[".",".","."],["+","+","+"]], entrance = [1,0]
|
||
<b>输出:</b>2
|
||
<b>解释:</b>迷宫中只有 1 个出口,在 (1,2) 处。
|
||
(1,0) 不算出口,因为它是入口格子。
|
||
初始时,你在入口与格子 (1,0) 处。
|
||
- 你可以往右移动 2 步到达 (1,2) 处。
|
||
所以,最近的出口为 (1,2) ,距离为 2 步。
|
||
</pre>
|
||
|
||
<p><strong>示例 3:</strong></p>
|
||
<img alt="" src="https://assets.leetcode.com/uploads/2021/06/04/nearest3-grid.jpg" style="width: 173px; height: 93px;">
|
||
<pre><b>输入:</b>maze = [[".","+"]], entrance = [0,0]
|
||
<b>输出:</b>-1
|
||
<b>解释:</b>这个迷宫中没有出口。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>maze.length == m</code></li>
|
||
<li><code>maze[i].length == n</code></li>
|
||
<li><code>1 <= m, n <= 100</code></li>
|
||
<li><code>maze[i][j]</code> 要么是 <code>'.'</code> ,要么是 <code>'+'</code> 。</li>
|
||
<li><code>entrance.length == 2</code></li>
|
||
<li><code>0 <= entrance<sub>row</sub> < m</code></li>
|
||
<li><code>0 <= entrance<sub>col</sub> < n</code></li>
|
||
<li><code>entrance</code> 一定是空格子。</li>
|
||
</ul>
|