Search⌘ K
AI Features

Merge Intervals

Explore how to merge overlapping intervals in an array by identifying common time points and returning non-overlapping intervals. Understand the problem constraints and practice implementing solutions to efficiently handle interval merging. This lesson helps you master a fundamental pattern crucial for coding interviews involving scheduling, intersections, and interval management.

Statement

We are given an array of closed intervalsclosedintervals called intervals, where each interval has a start time and an end time and is represented as intervals[i] = [starti, endi]. Your task is to merge all the overlapping intervalsOverlapping intervals are two or more intervals with at least one common point in time. and return an array of the resulting non-overlapping intervals that cover all the intervals in the input.

Constraints:

  • 11 \leq intervals.length 103\leq10^3

  • intervals[i].length ==2== 2

  • 00\leq starti \leq endi 104\leq10^4

Examples

canvasAnimation-image
1 / 4

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Merge Intervals

1.

Given the intervals below, what is the correct output after merging the overlapping intervals?

[ [1, 6], [2, 4] ]

A.

[ [2, 4] ]

B.

[ [1, 6] ]

C.

[ [1, 6], [2, 4] ]

D.

[ [2, 4], [1, 6] ]


1 / 4

Figure it out

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5

Try it yourself

Implement your solution in the following coding playground.

C++
usercode > Solution.cpp
std::vector<std::vector<int>> MergeIntervals(std::vector<std::vector<int>> &intervals)
{
// Replace this placeholder return statement with your code
return {{}};
}
Merge Intervals