Data Stream as Disjoint Intervals LeetCode solution in C++
1class SummaryRanges {2public:3SummaryRanges() {}45void addNum(int val) {6data_given.insert(val);7}89vector<vector<int>> getIntervals() {10vector<vector<int>> res;11int start = -1;12int end = -1;13for (auto &item : data_given) {14if (start == -1) {15start = item;16end = item;17} else if (item == end + 1) {18end = item;19} else {20res.push_back({start, end});21start = end = item;22}23}2425if (start != -1) res.push_back({start, end});2627return res;28}2930private:31set<int> data_given;32};