leetcode-166周赛-5280-用户分组

题目描述:

 

 

 

 自己的提交:

class Solution:
    def groupThePeople(self, groupSizes: List[int]) -> List[List[int]]:
        ans = []
        dic = {}
        for v,i in enumerate(groupSizes):
            if i in dic:
                dic[i].append(v)
                if len(dic[i]) == i:
                    ans.append(dic[i])
                    dic.pop(i)
            else:
                dic[i] = [v]
                if i == 1:
                    ans.append(dic[i])
                    dic.pop(i)
        return ans

优化;

class Solution:
    def groupThePeople(self, g: List[int]) -> List[List[int]]:
        res = []       
        d = collections.defaultdict(list)      
        for i, x in enumerate(g):
            d[x].append(i)          
            if len(d[x]) == x:
                res.append(d[x])
                d[x] = []   
        return res

 

posted @ 2019-12-09 10:37  oldby  阅读(214)  评论(0编辑  收藏  举报