Group the People Given the Group Size They Belong To

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.

Example 1
InputgroupSizes = [3,3,3,3,3,1,3]
Output[[5],[0,1,2],[3,4,6]]
Person 5 forms a group of size 1, and the remaining listed groups each contain exactly 3 people whose groupSizes values are 3.
Example 2
InputgroupSizes = [2,1,3,3,3,2]
Output[[1],[0,5],[2,3,4]]
Person 1 forms a group of size 1, people 0 and 5 form a group of size 2, and people 2, 3, and 4 form a group of size 3.

Constraints

  • groupSizes.length == n
  • 1 <= n <= 500
  • 1 <= groupSizes[i] <= n

Asked at 5 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate