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)/打砖块 [bricks-falling-when-hit].html
2022-03-29 12:43:11 +08:00

68 lines
2.8 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>有一个 <code>m x n</code> 的二元网格<meta charset="UTF-8" />&nbsp;<code>grid</code>&nbsp;,其中 <code>1</code> 表示砖块,<code>0</code> 表示空白。砖块 <strong>稳定</strong>(不会掉落)的前提是:</p>
<ul>
<li>一块砖直接连接到网格的顶部,或者</li>
<li>至少有一块相邻4&nbsp;个方向之一)砖块<strong> 稳定 </strong>不会掉落时</li>
</ul>
<p>给你一个数组 <code>hits</code> ,这是需要依次消除砖块的位置。每当消除&nbsp;<code>hits[i] = (rowi, coli)</code> 位置上的砖块时,对应位置的砖块(若存在)会消失,然后其他的砖块可能因为这一消除操作而 <strong>掉落</strong> 。一旦砖块掉落,它会 <strong>立即</strong> 从网格&nbsp;<code>grid</code>&nbsp;中消失(即,它不会落在其他稳定的砖块上)。</p>
<p>返回一个数组 <code>result</code> ,其中 <code>result[i]</code> 表示第 <code>i</code> 次消除操作对应掉落的砖块数目。</p>
<p><strong>注意</strong>,消除可能指向是没有砖块的空白位置,如果发生这种情况,则没有砖块掉落。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>grid = [[1,0,0,0],[1,1,1,0]], hits = [[1,0]]
<strong>输出:</strong>[2]
<strong>解释:</strong>网格开始为:
[[1,0,0,0]
[<strong>1</strong>,1,1,0]]
消除 (1,0) 处加粗的砖块,得到网格:
[[1,0,0,0]
[0,<strong>1</strong>,<strong>1</strong>,0]]
两个加粗的砖不再稳定,因为它们不再与顶部相连,也不再与另一个稳定的砖相邻,因此它们将掉落。得到网格:
[[1,0,0,0],
[0,0,0,0]]
因此,结果为 [2] 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>grid = [[1,0,0,0],[1,1,0,0]], hits = [[1,1],[1,0]]
<strong>输出:</strong>[0,0]
<strong>解释:</strong>网格开始为:
[[1,0,0,0],
[1,<strong>1</strong>,0,0]]
消除 (1,1) 处加粗的砖块,得到网格:
[[1,0,0,0],
[1,0,0,0]]
剩下的砖都很稳定,所以不会掉落。网格保持不变:
[[1,0,0,0],
[<strong>1</strong>,0,0,0]]
接下来消除 (1,0) 处加粗的砖块,得到网格:
[[1,0,0,0],
[0,0,0,0]]
剩下的砖块仍然是稳定的,所以不会有砖块掉落。
因此,结果为 [0,0] 。</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>1 &lt;= m, n &lt;= 200</code></li>
<li><code>grid[i][j]</code><code>0</code><code>1</code></li>
<li><code>1 &lt;= hits.length &lt;= 4 * 10<sup>4</sup></code></li>
<li><code>hits[i].length == 2</code></li>
<li><code>0 &lt;= x<sub>i&nbsp;</sub>&lt;= m - 1</code></li>
<li><code>0 &lt;=&nbsp;y<sub>i</sub> &lt;= n - 1</code></li>
<li>所有 <code>(x<sub>i</sub>, y<sub>i</sub>)</code> 互不相同</li>
</ul>