56. Merge Intervals ๐
Difficulty: Medium
- Tags: Array
, Sorting
, Intervals
Problem Statement ๐
Given an array of intervals where intervals[i] = [start_i, end_i]
, merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
Examples ๐
๐น Example 1:
Input:
Output:
Explanation: Since intervals [1,3]
and [2,6]
overlap, merge them into [1,6]
.
๐น Example 2:
Input:
Output:
Explanation: Intervals [1,4]
and [4,5]
are considered overlapping.
Constraints โ๏ธ
1 <= intervals.length <= 10^4
intervals[i].length == 2
0 <= start_i <= end_i <= 10^4
Solution ๐ก
The task is to merge overlapping intervals. Sorting the intervals by their start times and iterating through the list makes it easier to merge overlapping intervals.
Java Solution
Explanation of the Solution
Sort the Intervals:
Sorting ensures that intervals are ordered by their start time, making it easier to detect overlaps.
Iterate and Merge:
Compare the
end
of the current interval with thestart
of the next interval.If overlapping, update the
end
of the current interval to the maximum of both intervals.If not overlapping, add the current interval to the result list and move to the next interval.
Convert the Result:
Convert the list of merged intervals back to a 2D array.
Time Complexity โณ
O(n log n): Sorting the intervals takes
O(n log n)
, and the merging step takesO(n)
.
Space Complexity ๐พ
O(n): The output list may contain all intervals in the worst case.
You can find the full solution here.
Last updated