120. Merge Overlapping Subintervals

Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals and return an array of the non-overlapping intervals that cover all the intervals in the input.

You can return the intervals in any order.

Example 1:

Input: intervals = [[1,5],[3,6],[8,10],[15,18]]

Output: [[1,6],[8,10],[15,18]]

Explanation: Intervals [1,5] and [3,6] overlap, so they are merged into [1,6].

Example 2:

Input: intervals = [[5,7],[1,3],[4,6],[8,10]]

Output: [[1,3],[4,7],[8,10]]

Explanation: Intervals [4,6] and [5,7] overlap and are merged into [4,7].

Now Your Turn!

Pick the correct output for the given input

Input: intervals = [[1,4],[4,5]]

Still unsure what the problem is asking ?

Let’s go through a few more examples, step by step, to make it clearer.

Constraints:

  • 1 <= intervals.length <= 10⁵
  • 0 <= starti <= endi <= 10⁵

Hints

Frequently Occurring Doubts

Interview Follow-up Questions

Fun Facts

0
class Solution {
public:
vector<vector<int>> mergeOverlap(vector<vector<int>>& arr) {
// Your code goes here
}
};
Test Case

Input:

Intervals