TypeScriptMediumSorting & Searching25 min

Merge overlapping intervals

Given closed intervals [start,end] with start <= end, merge all overlaps including shared endpoints. Return intervals sorted by start. Inputs are valid JSON and must not be modified unless the algorithm uses a local copy. This exercise probes typed data modeling, boundary handling, and algorithm selection.

Input

One JSON value: number[][]. See the sample for its exact shape.

Output

One compact JSON value of type number[][]. Strings include JSON quotes; arrays preserve the specified order.

Constraints

Array/string lengths are 0 to 10000 unless stated otherwise. Numbers are integers in [-1000000,1000000]; all computed results fit the safe integer range.

Example

Input

[[1,3],[2,6],[8,10]]

Output

[[1,6],[8,10]]

Example 2 input

[[1,9],[2,3],[1,9]]

Output

[[1,9]]

Checks a boundary or contrasting case beyond the public examples.

Public test cases (2)

  • Input

    [[1,3],[2,6],[8,10]]

    Expected output

    [[1,6],[8,10]]
  • Input

    []

    Expected output

    []
Hints (2)
  1. Start with the required output order and the empty-input behavior.
  2. Sort by start and extend the last merged interval

Target complexity: time O(n log n) · space O(n)

Your solution

Checking runner availability…

Reference solution

Sign in for solution
All TypeScript programs