Divide Intervals Into Minimum Number of Groups

Divide Intervals Into Minimum Number of Groups is a Medium Data Structures and Algorithms interview problem you can solve, run and submit on Thita.ai. It belongs to the Greedy Patterns pattern, in the Interval Merging/Scheduling subpattern.

Problem statement

You are given a 2D integer array intervals where intervals[i] = [lefti, righti] represents the inclusive interval [lefti, righti].

You have to divide the intervals into one or more groups such that each interval is in exactly one group, and no two intervals that are in the same group intersect each other.

Return the minimum number of groups you need to make.

Two intervals intersect if there is at least one common number between them. For example, the intervals [1, 5] and [5, 8] intersect.

Example 1:

Input: intervals = [[5,10],[6,8],[1,5],[2,3],[1,10]] Output: 3 Explanation: We can divide the intervals into the following groups: - Group 1: [1, 5], [6, 8]. - Group 2: [2, 3], [5, 10]. - Group 3: [1, 10]. It can be proven that it is not possible to divide the intervals into fewer than 3 groups.

Example 2:

Input: intervals = [[1,3],[5,6],[8,10],[11,13]] Output: 1 Explanation: None of the intervals overlap, so we can put all of them in one group.

Constraints:

- 1 <= intervals.length <= 105

- intervals[i].length == 2

- 1 <= lefti <= righti <= 106

Topics and companies

Topics: Array, Two Pointers, Greedy, Sorting, Heap (Priority Queue), Prefix Sum.

How to practise Divide Intervals Into Minimum Number of Groups on Thita.ai

Starter code is provided in C, C#, C++, Go, Java, JavaScript and Python. Your solution runs against 5 test cases for this problem, with the AI coach available for a hint when you are stuck rather than a finished answer. The reference solution runs in O(nlogn) time and O(n) space.

Open Divide Intervals Into Minimum Number of Groups in the code editor, or read the Divide Intervals Into Minimum Number of Groups editorial for a worked solution with its approach and complexity analysis.

Where Divide Intervals Into Minimum Number of Groups sits in the DSA pattern sheet

Problems related to Divide Intervals Into Minimum Number of Groups

Other problems that use the same Interval Merging/Scheduling and Greedy Patterns techniques:

Preparing this workspace.