mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
41 lines
1.9 KiB
HTML
41 lines
1.9 KiB
HTML
<p>给你一个 <code>m * n</code> 的网格,其中每个单元格不是 <code>0</code>(空)就是 <code>1</code>(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。</p>
|
||
|
||
<p>如果您 <strong>最多</strong> 可以消除 <code>k</code> 个障碍物,请找出从左上角 <code>(0, 0)</code> 到右下角 <code>(m-1, n-1)</code> 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 <code>-1</code> 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<p><img src="https://pic.leetcode.cn/1700710956-kcxqcC-img_v3_025f_d55a658c-8f40-464b-800f-22ccd27cc9fg.jpg" style="width: 243px; height: 404px;" /></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong> grid = [[0,0,0],[1,1,0],[0,0,0],[0,1,1],[0,0,0]], k = 1
|
||
<strong>输出:</strong>6
|
||
<strong>解释:
|
||
</strong>不消除任何障碍的最短路径是 10。
|
||
消除位置 (3,2) 处的障碍后,最短路径是 6 。该路径是 <code>(0,0) -> (0,1) -> (0,2) -> (1,2) -> (2,2) -> <strong>(3,2)</strong> -> (4,2)</code>.
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<p><img src="https://pic.leetcode.cn/1700710701-uPqkZe-img_v3_025f_0edd50fb-8a70-4a42-add0-f602caaad35g.jpg" style="width: 243px; height: 244px;" /></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>grid = [[0,1,1],[1,1,1],[1,0,0]], k = 1
|
||
<strong>输出:</strong>-1
|
||
<strong>解释:</strong>我们至少需要消除两个障碍才能找到这样的路径。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>grid.length == m</code></li>
|
||
<li><code>grid[0].length == n</code></li>
|
||
<li><code>1 <= m, n <= 40</code></li>
|
||
<li><code>1 <= k <= m*n</code></li>
|
||
<li><code>grid[i][j]</code> 是 <code>0</code> 或<strong> </strong><code>1</code></li>
|
||
<li><code>grid[0][0] == grid[m-1][n-1] == 0</code></li>
|
||
</ul>
|