题目描述[原题链接][https://leetcode-cn.com/problems/data-stream-as-disjoint-intervals/]
给定一个非负整数的数据流输入 a1,a2,…,an,…,将到目前为止看到的数字总结为不相交的区间列表。
例如,假设数据流中的整数为 1,3,7,2,6,…,每次的总结为:
| 1 | [1, 1] | 
进阶:
如果有很多合并,并且与数据流的大小相比,不相交区间的数量很小,该怎么办?
算法描述
分两部分处理,首先是添加整数的时候,需要添加完数据后还是有序的,我采用的是lower_bound()函数,即二分查找到比当前值小的最后一个数,将要添加的数val添加到向量中,最后实现添加完的数据都是有序的;第二部就是找到区间,通过两层循环实现,遍历向量,如果前后两个数值相差1,即vec[j]-vec[j-1]<=1跳过,否则,跳出循环,压入vec[j-1],更新i的值i=j-1,将结果添加到结果集中,遍历完整个向量结束;
C++代码
| 1 | class SummaryRanges { | 
Java代码
| 1 | class SummaryRanges { |