Loading...

09-11 leetcode-1282

链接 1282. 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.

题解

这个题可以哈希表直接过,记录 groupSize 就行

1
2
3
4
5
6
7
8
9
10
11
12
from collections import defaultdict


class Solution:
def groupThePeople(self, groupSizes: list[int]) -> list[list[int]]:
group = defaultdict(list)
results = []
for index, size in enumerate(groupSizes):
group[size].append(index)
if len(group[size]) == size:
results.append(group.pop(size))
return results

Comment