谅潭好 发表于 2025-12-3 19:30:38

LC3161(2500) 普通线段树

题目:
有一条无限长的数轴,原点在 0 处,沿着 x 轴 正 方向无限延伸。
给你一个二维数组 queries ,它包含两种操作:
操作类型 1 :queries = 。在距离原点 x 处建一个障碍物。数据保证当操作执行的时候,位置 x 处 没有 任何障碍物。
操作类型 2 :queries = 。判断在数轴范围 内是否可以放置一个长度为 sz 的物块,这个物块需要 完全 放置在范围 内。如果物块与任何障碍物有重合,那么这个物块 不能 被放置,但物块可以与障碍物刚好接触
请你返回一个 bool 数组results ,如果第 i 个操作类型 2 的操作你可以放置物块,那么 results 为 true ,否则为 false 。
思路:
显然使用线段树,甚至不需要区间更新,维护信息为区间最大值。
显然,把区间最大值的信息放在区间最右端最合适。如果这样的话,每个query都分成两个询问 : 0~L内最靠右的障碍物的x坐标 + x~L
因此,我们使用线段树维护区间最大值的同时,用一个集合保存障碍物信息,然后每次都查找。(注意哨兵元素)
代码:
class Solution {    vector t;    void update(int x, int l, int r, int ui, int val) {      if (l == r) {            t = val;            return;      }      int mid = (l + r) >> 1;      if (ui1;      if (qr

嘀荼酴 发表于 2026-1-13 18:25:25

前排留名,哈哈哈

颖顿庐 发表于 2026-1-16 05:26:20

感谢发布原创作品,程序园因你更精彩

殷罗绮 发表于 2026-1-18 22:24:51

这个有用。

啦汇 发表于 2026-1-20 00:57:21

谢谢楼主提供!

愆蟠唉 发表于 2026-1-21 11:59:32

分享、互助 让互联网精神温暖你我

章娅萝 发表于 2026-1-23 06:35:44

分享、互助 让互联网精神温暖你我

龙玮奇 发表于 2026-1-28 07:27:49

这个好,看起来很实用

梁宁 发表于 2026-1-29 05:26:25

感谢,下载保存了

客臂渐 发表于 2026-1-30 02:22:02

感谢发布原创作品,程序园因你更精彩

接快背 发表于 2026-2-3 09:16:29

东西不错很实用谢谢分享

昝琳怡 发表于 2026-2-6 12:59:28

新版吗?好像是停更了吧。

司寇涵涵 发表于 2026-2-7 22:55:00

东西不错很实用谢谢分享

柏雅云 发表于 2026-2-9 22:03:39

很好很强大我过来先占个楼 待编辑

汹萃热 发表于 2026-2-11 02:50:21

喜欢鼓捣这些软件,现在用得少,谢谢分享!

煞赶峙 发表于 2026-2-12 07:33:09

分享、互助 让互联网精神温暖你我

翳舀 发表于 2026-2-14 01:25:25

yyds。多谢分享

敛饺乖 发表于 2026-3-10 22:26:53

懂技术并乐意极积无私分享的人越来越少。珍惜

呶募妙 发表于 2026-3-10 22:38:01

过来提前占个楼

狙兕 发表于 3 天前

感谢分享,学习下。
页: [1]
查看完整版本: LC3161(2500) 普通线段树