Solution: Data Stream as Disjoint Intervals
Understand how to process a stream of non-negative integers by summarizing them into disjoint intervals. Learn to add numbers dynamically, merge overlapping intervals, and maintain a sorted structure for efficient retrieval. This lesson teaches the interval pattern to handle merging and updating intervals with optimal time complexity.
We'll cover the following...
Statement
You are given a stream of non-negative integers
Your task is to implement the Summary Ranges class, where:
Constructor: Initializes the Summary Ranges object with an empty stream.
Add Num(int value): Adds the integer
valueto the stream.Get Intervals(): Returns the current summary of numbers as a list of disjoint intervals
[start_i, end_i], sorted bystart_i.
Note: Each number belongs to exactly one interval. Intervals must merge whenever new numbers connect or extend existing ones, and duplicate insertions should not affect the summary.
Constraints:
...