lc352.将数据流变为多个不相交区间
                    目录
                    
                
                
            352.将数据流变为多个不相交区间
有序哈希
- 可以考虑将一个区间左值作为key,右值作为val进行哈希。
 - 每次加入一个值考虑其最近的两个区间,这里可以考虑第一个左值大于该值的区间
p1={l1,r1}和最后一个左值小于等于该值的区间p0={l0,r0}。 - p1可以通过
upper_bound()得到,p0可以通过迭代器prev得到,这里主要考虑p1前面没有元素的情况。prev(it, n = 1)获取迭代器的第前n个元素指针,默认n为1next(it, n = 1)获取迭代器的第后n个元素指针,默认n为1
 - 考虑一下五种情况
l0<=val<=r0在p0区间内,则加入该值不需要任何操作,直接返回即可。val == r0 + 1 && val == l1 - 1,这个时候需要合并两个区间,注意需要提前存储节点值,之后删除结点,合并后的区间为{l0, r1}val == r0 + 1 && val != l1 - 1,这个时候需要扩展p0区间,p0={l0, val}val != r0 + 1 && val == l1 - 1,这个时候需要扩展p1区间,p1={val, r1}val不满足以上任何一种情况,{val, val}单独是一个区间
 
 | 
 |