題目面試
有 n 位用戶參加活動,他們的 ID 從 0 到 n - 1,每位用戶都 恰好 屬於某一用戶組。給你一個長度爲 n 的數組 groupSizes,其中包含每位用戶所處的用戶組的大小,請你返回用戶分組情況(存在的用戶組以及每個組中用戶的 ID)。
你可以任何順序返回解決方案,ID 的順序也不受限制。此外,題目給出的數據保證至少存在一種解決方案。
算法思路
用字典保存有相同長度用戶組的用戶ID,然後分組。
class Solution:
def groupThePeople(self, groupSizes):
d={}
for i,j in enumerate(groupSizes):
if j in d:
d[j].append(i)
else:
d[j]=[i]
res=[]
for i,j in d.items():
while j:
tp=[]
while j and len(tp)<i:
tp.append(j.pop())
res.append(tp)
return res
!唯一需要注意的一點是對字典值來說,如果是可變類,需要注意其操作,不是賦值修改,而是直接對值修改,每次這樣都會忘,都是在錯誤調試時才發現。