没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
**
🍭
更多精彩内容,欢迎关注:公众号 / Github / LeetCode / 知乎 **
噔噔噔噔,这是公众号「噔噔噔噔,这是公众号「宫水三叶的刷宫水三叶的刷题题日日记记」的原」的原创专题创专题「「线线段段树树」合集。」合集。
本合集更新时间本合集更新时间为为 2021-10-07,大概每,大概每 2-4 周会集中更新一次。周会集中更新一次。关注公众号,后台回复「注公众号,后台回复「线线段段
树树」即可获取最新下」即可获取最新下载链载链接。接。
💡💡
下面介下面介绍绍使用本合集的最佳使用实使用本合集的最佳使用实践::
学学习习算法:算法:
1. 打开在线目录(Github 版 & Gitee 版);
2. 从侧边栏的类别目录找到「线段树」;
3. 按照「推荐指数」从大到小进行刷题,「推荐指数」相同,则按照「难度」从易到
难进行刷题‘
4. 拿到题号之后,回到本合集进行检索。
维维持熟持熟练练度:度:
1. 按照本合集「从上往下」进行刷题。
学学习习过程中遇到任何困过程中遇到任何困难难,欢迎加入「每日一,欢迎加入「每日一题题打卡打卡 QQ 群:群:703311589」」进进行交流行交流
🍭🍭🍭🍭🍭🍭
**
🍭
更多精彩内容,欢迎关注:公众号 / Github / LeetCode / 知乎 **
题题目描述目描述
这是 LeetCode 上的 1109. 航班航班预订预订统统计计 ,难度为中等中等。
Tag : 「区间求和问题」、「差分」、「线段树」
这里有 n 个航班,它们分别从 1 到 n 进行编号。
有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [first
i
, last
i
, seats
i
]
意味着在从 first
i
到 last
i
(包含 first
i
和 last
i
)的 每个航班 上预订了 seats
i
个座位。
请你返回一个长度为 n 的数组 answer ,其中 answer[i] 是航班 i 上预订的座位总数。
示例 1:
输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
输出:[10,55,45,25,25]
解释:
航班编号 1 2 3 4 5
预订记录 1 : 10 10
预订记录 2 : 20 20
预订记录 3 : 25 25 25 25
总座位数: 10 55 45 25 25
因此,answer = [10,55,45,25,25]
示例 2:
输入:bookings = [[1,2,10],[2,2,15]], n = 2
输出:[10,25]
解释:
航班编号 1 2
预订记录 1 : 10 10
预订记录 2 : 15
总座位数: 10 25
因此,answer = [10,25]
提示:
• 1 <= n <= 2 ∗ 10
4
• 1 <= bookings.length <= 2 ∗ 10
4
• bookings[i].length == 3
• 1 <= firsti <= lasti <= n
• 1 <= seatsi <= 10
4
基本分析基本分析
本题只涉及「区间修改 + 单点查询」,属于「区间求和」问题中的入门难度。
对于各类「区间求和」问题,该用什么方式进行求解,之前在 这里 提到过。
此处可以再总结一下(加粗字体为最佳方案):
• 数组不变,区间查询:前前缀缀和和、树状数组、线段树;
• 数组单点修改,区间查询:树树状数状数组组、线段树;
• 数组区间修改,单点查询:差分差分、线段树;
• 数组区间修改,区间查询:线线段段树树。
注意:上述总结是对于一般性而言的(能直接解决的),对标的是模板问题。
但存在经过一些经过“额外”操作,对问题进行转化,从而使用别的解决方案求解的情况。
例如某些问题,我们可以先对原数组进行差分,然后使用树状数组,也能解决区间修改问
题。
或者使用多个树状数组来维护多个指标,从而实现类似线段树的持久化标记操作。
但这些不属于一般性,所以就不添加到题解了。
差分差分
本题只涉及「区间修改 + 单点查询」,因此是一道「差分」的模板题。
「差分」可以看做是求「前缀和」的逆向过程。
对于一个「将区间 [l, r] 整体增加一个值 v」操作,我们可以对差分数组 c 的影响看成两部分:
• 对 c[l]+ = v:由于差分是前缀和的逆向过程,这个操作对于将来的查询而言,带
来的影响是对于所有的下标大于等于 l 的位置都增加了值 v;
• 对 c[r + 1]− = v:由于我们期望只对 [l, r] 产生影响,因此需要对下标大于 r 的
位置进行减值操作,从而抵消“影响”。
对于最后的构造答案,可看做是对每个下标做“单点查询”操作,只需要对差分数组求前缀和即
可。
代码:
剩余15页未读,继续阅读
半清斋
- 粉丝: 55
- 资源: 322
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0