【力扣】1282:用戶分組

題目面試

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

!唯一需要注意的一點是對字典值來說,如果是可變類,需要注意其操作,不是賦值修改,而是直接對值修改,每次這樣都會忘,都是在錯誤調試時才發現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章