【力扣】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

!唯一需要注意的一点是对字典值来说,如果是可变类,需要注意其操作,不是赋值修改,而是直接对值修改,每次这样都会忘,都是在错误调试时才发现。

发布了317 篇原创文章 · 获赞 44 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Heart_for_Ling/article/details/105627831