扫描线
扫描线一般应用在图形上面,就是一条线在整个图形上扫来扫去,一般内用来解决图形面积,周长等问题。
以 数飞机 为例,深入理解扫描线的核心:只关注起止时间点,而不用暴力的关注每一个时刻。
将每个区间切成起点和终点,然后操作
数最多重复区间个数
类型描述
将开始时间和结束时间放到同一个数组中, 标识出是开始还是结束, 然后对数组排序。排序须要按照时间顺序先后排列,如果同时有开始和结束,将结束放在开始前,排序好之后,遍历数组。
经典题型
920 · 会议室 - LintCode 等同🔒Leetcode 252 会议室
919 · 会议室 II - LintCode 等同🔒Leetcode 253会议室Ⅱ
重复区间的合并插入删除与构建
返回重复区间
给两个区间数组,返回两个数组中 所有区间的重复时间段,采用双指针思路。或者返回非重复时间段,利用数飞机的策略
不相交的个数
无分类
需要借助一些别的数据结构来实现例如 TreeMap,TreeSet 优先队列。
在python中,此三种数据结构有 sortedcontainers 库中的 SortedDict, SortedSet, SortedList 来实现
速通
记录
2021年11月18日 | 判断覆盖区间的,可以按照头升序,尾降序的排,这样排完之和才可能的前面的覆盖后面的,不然不好判断。 | LeetCode:435,
LintCode: 850 |
ㅤ | ㅤ | ㅤ |
ㅤ | ㅤ | ㅤ |