Merge Overlapping Intervals

MEDIUM

Write a function to merge overlapping intervals in a list of tuples (or lists), where each tuple (start, end) represents an interval. The intervals should be merged if they overlap, producing a new list of non-overlapping intervals that cover all the input intervals.

Examples:

Example 1:

Input: intervals = [[1,3], [2,6], [8,10], [15,18]]
Output: [[1,6], [8,10], [15,18]]
Explanation: Since intervals [1,3] and [2,6] overlap, merge them into [1,6].

Example 2:

Input: intervals = [[1,4], [4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.

Example 3:

Input: intervals = [[1,4], [0,4]]
Output: [[0,4]]

Example 4:

Input: intervals = [[1,4], [2,3]]
Output: [[1,4]]

Constraints:

  • 1 <= intervals.length <= 104
  • intervals[i].length == 2
  • 0 <= starti <= endi <= 104

Function Signature (Python):

from typing import List, Tuple

class Solution:
    # Using List[List[int]] as per LeetCode convention, but Tuple[int, int] is also common
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        # Your code here
        pass

 

Nerchuko Academy · Free DS Interview Prep