Non-overlapping Intervals

IF
AlgoAxiomStaff Engineers
JSTS
Medium20 mins

Given an array of intervals intervals where intervals[i] = [startᵢ, endᵢ], return the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.

Intervals that only touch at a point (e.g., [1, 2] and [2, 3]) are not considered overlapping.

Examples

Example 1:

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

Output: 1

Explanation: Remove [1,3] and the remaining intervals [[1,2],[2,3],[3,4]] are non-overlapping.

Example 2:

Input: intervals = [[1,2],[1,2],[1,2]]

Output: 2

Explanation: You need to remove two [1,2] intervals to leave just one.

Example 3:

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

Output: 0

Explanation: The intervals only touch at point 2, so they do not overlap. No removal is needed.

Constraints

  • 1 <= intervals.length <= 10⁵
  • intervals[i].length == 2
  • -5 * 10⁴ <= startᵢ < endᵢ <= 5 * 10⁴
Source: Intervals pattern — AlgoAxiom
JavaScript
Test Case 1
root = [1, 2, 3]
Test Case 2
root = [1, 2, 3, 4, 5]
Idle