Group the People Given the Group Size They Belong To - Problem
There are n people that are split into some unknown number of groups. Each person is labeled with a unique ID from 0 to n - 1.
You are given an integer array groupSizes, where groupSizes[i] is the size of the group that person i is in.
For example, if groupSizes[1] = 3, then person 1 must be in a group of size 3.
Return a list of groups such that each person i is in a group of size groupSizes[i].
Each person should appear in exactly one group, and every person must be in a group. If there are multiple answers, return any of them. It is guaranteed that there will be at least one valid solution for the given input.
Input & Output
Example 1 — Mixed Group Sizes
$
Input:
groupSizes = [3,3,3,3,3,1,3]
›
Output:
[[5],[0,1,2],[3,4,6]]
💡 Note:
Person 5 wants group size 1, so gets their own group. People 0,1,2 all want size 3, so form one group. People 3,4,6 also want size 3, forming another group.
Example 2 — All Same Size
$
Input:
groupSizes = [2,1,3,3,3,2]
›
Output:
[[1],[0,5],[2,3,4]]
💡 Note:
Person 1 wants size 1. People 0,5 want size 2. People 2,3,4 want size 3. Each gets grouped with others of same preference.
Example 3 — Edge Case Small
$
Input:
groupSizes = [1]
›
Output:
[[0]]
💡 Note:
Single person wants group size 1, so forms their own group.
Constraints
- groupSizes.length == n
- 1 ≤ n ≤ 500
- 1 ≤ groupSizes[i] ≤ n
Visualization
Tap to expand
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code