352. 将数据流变为多个不相交区间
进阶: 如果存在大量合并,并且与数据流的大小相比,不相交区间的数量很小,该怎么办?
链接:https://leetcode-cn.com/problems/data-stream-as-disjoint-intervals
class SummaryRanges {
public:
int nums[10001]={0};
SummaryRanges() {
void addNum(int val);
vector<vector<int>> getIntervals(void);
}
void addNum(int val) {
nums[val]=1;
}
vector<vector<int>> getIntervals() {
vector<vector<int>>ret;
vector<int>tmp;
int l=-1,r=-1;
for(int i=0;i<10001;i++)
{
if(nums[i])
{
if(l==-1)
{
l=i;
r=i;
}
else r=i;
}
else
{
if(l!=-1)
{
tmp={l,r};
ret.push_back(tmp);
l=-1;
r=-1;
}
}
}
if(l!=-1)
{
tmp={l,r};
ret.push_back(tmp);
}
return ret;
}
};