Leetcode 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.
題目
主要是說3,3,3,3,1,3
3=>這組最多3人 3只會跟3一組
class Solution
{
/**
* @param Integer[] $groupSizes
* @return Integer[][]
*/
function groupThePeople($groupSizes)
{
$group = [];
$tmpGroup = [];
foreach ($groupSizes as $index => $item) {
$group[$item][] = $index;
if (count($group[$item]) === $item) {
$tmpGroup[] = $group[$item];
unset($group[$item]);
}
}
return array_values($tmpGroup);
}
}