算法学习(四)区间问题

本文介绍了区间问题的概念,涉及排序、优先堆、扫描线、优先队列和滑动窗口等技术在解决区间相关问题中的应用,如会议参加、天际线问题和子序列查找等实例。
摘要由CSDN通过智能技术生成

区间窗口

1. 概念

区间问题,就是线段问题,让你合并所有线段、找出线段的交集。两个技巧,画图+排序!

2. 解题技巧(我的总结)

1> 区间重叠问题,排序后分类讨论,用一个变量记录前面最右端rightMax及其对应的索引idx

题目说明实现
1288. 删除被覆盖区间注意可能重复计算我的提交

2> 使用优先堆解决区间问题

题目说明实现
1353. 最多可以参加的会议数目第i天应当参加所有当天可参加的会议中结束时间最早的我的提交
480. 滑动窗口中位数窗口分成凉拌菜,分别用大小顶堆维护,belongTO bool数组记录每个元素属于哪个堆,完成堆平衡我的提交

3> 扫描线+优先队列解决 区间问题
遍历横坐标i :
所有起点==i的区间入队列
所有终点<=i的区间出队列
处理队首元素
i移动到min(队首元素的终点,区间集合中下一元素的起点)

题目说明实现
218. 天际线问题i为横坐标我的提交

4> 滑动窗口问题,遍历right,滑动left使区间符合条件

题目说明实现
2762. 不间断子数组使用map记录窗口内的所有值🥱我的提交
30. 串联所有单词的子串使用map记录窗口内的所有出现的小段,保持不超过words中的次数我的提交
76. 最小覆盖子串先从左0右端点恰满足条件的位置不断右滑窗口,左端点每次取极右,记录过程中最小窗口我的提交
986. 区间列表的交集固定区间一,依次讨论区间二逐渐向右的所有情况我的提交

2> 问题可抽象为区间,则排序、双指针找窗口

题目说明实现
1498. 满足条件的子序列数目枚举最小值,搜索最右端,得到窗口我的提交

3. 更多练习

4. 参考

  1. 大部分参考自:算法基础——枚举
  2. 总库:tryHard
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值