一种区间交问题的奇怪姿势
Update[220504]: 原来这种数据结构叫珂朵莉树啊,真神奇。。。
我们要解决什么问题
区间交问题,是我们在做题中经常遇到的问题。
例如,Insert Interval一题,就是比较直白的区间交问题:
给定一系列的整数区间,再插入一个新的区间,问合并后的整数区间是什么
类似的还有Merge Intervals:
给定一系列可能有重叠的整数区间,求合并后的整数区间
另一种区间交问题的描述是时间区间相关的问题,如Time Intersection:
给定用户A和用户B的在线时间区间,问两人同时在线的时间区间
又如经典的会议室安排问题Meeting Rooms和Meeting Rooms II:
给定N个会议的时间区间,问一个人能否参加所有的会议
以及
给定N个会议的时间区间,问最少需要多少个会议室
还有系统设计与API设计包装后的算法题Range Module。归根结底,都是整数区间问题的变形或者包装。
传统解法
对于这类区间问题,传统的解法是将区间使用顺序容器(如vector …