Description
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:
1 | Input: groupSizes = [3,3,3,3,3,1,3] |
Example 2:
1 | Input: groupSizes = [2,1,3,3,3,2] |
Constraints:
1 | groupSizes.length == n |
Solutions
- key: length of the group, value: the index of each element
- store them in the dictionary
- for loop value and use v[i:i+k] to slice the string based on the key
1 | from sortedcontainers import SortedList |
Optimised HashTable
1 | class Solution: |