1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-25 17:50:26 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/物块放置查询 [block-placement-queries].html
2024-06-05 08:50:06 +08:00

57 lines
3.4 KiB
HTML
Raw Permalink 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>有一条无限长的数轴,原点在 0 处,沿着 x 轴 <strong></strong>&nbsp;方向无限延伸。</p>
<p>给你一个二维数组&nbsp;<code>queries</code>&nbsp;,它包含两种操作:</p>
<ol>
<li>操作类型 1 <code>queries[i] = [1, x]</code>&nbsp;。在距离原点 <code>x</code>&nbsp;处建一个障碍物。数据保证当操作执行的时候,位置 <code>x</code>&nbsp;<strong>没有</strong>&nbsp;任何障碍物。</li>
<li>操作类型 2 <code>queries[i] = [2, x, sz]</code>&nbsp;。判断在数轴范围&nbsp;<code>[0, x]</code>&nbsp;内是否可以放置一个长度为&nbsp;<code>sz</code>&nbsp;的物块,这个物块需要&nbsp;<strong>完全</strong>&nbsp;放置在范围&nbsp;<code>[0, x]</code>&nbsp;内。如果物块与任何障碍物有重合,那么这个物块&nbsp;<strong>不能</strong>&nbsp;被放置,但物块可以与障碍物刚好接触。注意,你只是进行查询,并&nbsp;<strong>不是</strong>&nbsp;真的放置这个物块。每个查询都是相互独立的。</li>
</ol>
<p>请你返回一个 boolean 数组<code>results</code>&nbsp;,如果第&nbsp;<code>i</code> 个操作类型 2 的操作你可以放置物块,那么&nbsp;<code>results[i]</code>&nbsp;&nbsp;<code>true</code>&nbsp;,否则为 <code>false</code>&nbsp;</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>queries = [[1,2],[2,3,3],[2,3,1],[2,2,2]]</span></p>
<p><span class="example-io"><b>输出:</b>[false,true,true]</span></p>
<p><strong>解释:</strong></p>
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2024/04/22/example0block.png" style="padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem; width: 309px; height: 129px;" /></strong></p>
<p>查询 0 ,在&nbsp;<code>x = 2</code>&nbsp;处放置一个障碍物。在&nbsp;<code>x = 3</code>&nbsp;之前任何大小不超过 2 的物块都可以被放置。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>queries = </span>[[1,7],[2,7,6],[1,2],[2,7,5],[2,7,6]]<!-- notionvc: 4a471445-5af1-4d72-b11b-94d351a2c8e9 --></p>
<p><b>输出:</b>[true,true,false]</p>
<p><strong>解释:</strong></p>
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2024/04/22/example1block.png" style="padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem; width: 310px; height: 130px;" /></strong></p>
<ul>
<li>查询 0 在&nbsp;<code>x = 7</code>&nbsp;处放置一个障碍物。在&nbsp;<code>x = 7</code>&nbsp;之前任何大小不超过 7 的物块都可以被放置。</li>
<li>查询 2 在&nbsp;<code>x = 2</code>&nbsp;处放置一个障碍物。现在,在&nbsp;<code>x = 7</code>&nbsp;之前任何大小不超过 5 的物块可以被放置,<code>x = 2</code>&nbsp;之前任何大小不超过 2 的物块可以被放置。</li>
</ul>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= queries.length &lt;= 15 * 10<sup>4</sup></code></li>
<li><code>2 &lt;= queries[i].length &lt;= 3</code></li>
<li><code>1 &lt;= queries[i][0] &lt;= 2</code></li>
<li><code>1 &lt;= x, sz &lt;= min(5 * 10<sup>4</sup>, 3 * queries.length)</code></li>
<li>输入保证操作 1 中,<code>x</code>&nbsp;处不会有障碍物。</li>
<li>输入保证至少有一个操作类型 2 。</li>
</ul>