2024-12-31:物块放置查询。用go语言,在一个无限延伸的数轴上,原点位于 0 处,沿着 x 轴向正方向无限延伸。
现在我们有一个二维数组 queries,其中包含两种操作:
1. 操作类型 1:queries[i] = [1, x]。在距离原点 x 的位置上建立一个障碍物。保证在执行该操作时,位置 x 上不会有任何障碍物。
2. 操作类型 2:queries[i] = [2, x, sz]。检查在数轴范围 [0, x] 内,是否可以放置一个长度为 sz 的物体。该物体必须完全位于 [0, x] 的范围内,且不能与任何障碍物重叠,但可以与障碍物刚好接触。注意,这只是一个查询,不会实际放置物体。每个查询都是独立的。
最终,我们需要返回一个布尔数组 results,在第 i 个操作类型 2 的查询中,如果可以放置物体,则 results[i] 为 true,否则为 false。
1 <= queries.length <= 15 * 10000。
2 <= queries[i].length <= 3。
1 <= queries[i][0] <= 2。
1 <= x, sz <= min(5 * 10000, 3 * queries.length)。
输入保证操作 1 中,x 处不会有障碍物。
输入保证至少有一个操作类型 2 。
输入:queries = [[1,2],[2,3,3],[2,3,1],[2,2,2]]。
输出:[false,true,true]。
解释:
查询 0 ,在 x = 2 处放置一个障碍物。在 x = 3 之前任何大小不超过 2 的物块都可以被放置。
相似问题