• 【leetcode】1282. Group the People Given the Group Size They Belong To


    题目如下:

    There are n people whose IDs go from 0 to n - 1 and each person belongs exactly to one group. Given the array groupSizes of length n telling the group size each person belongs to, return the groups there are and the people's IDs each group includes.

    You can return any solution in any order and the same applies for IDs. Also, it is guaranteed that there exists at least one solution. 

    Example 1:

    Input: groupSizes = [3,3,3,3,3,1,3]
    Output: [[5],[0,1,2],[3,4,6]]
    Explanation: 
    Other possible solutions are [[2,1,6],[5],[0,4,3]] and [[5],[0,6,2],[4,3,1]].
    

    Example 2:

    Input: groupSizes = [2,1,3,3,3,2]
    Output: [[1],[0,5],[2,3,4]]

    Constraints:

    • groupSizes.length == n
    • 1 <= n <= 500
    • 1 <= groupSizes[i] <= n

    解题思路:先按照groupsize把人分组,然后再每个groupsize里面的人根据groupsize分成指定个小组。

    代码如下:

    class Solution(object):
        def groupThePeople(self, groupSizes):
            """
            :type groupSizes: List[int]
            :rtype: List[List[int]]
            """
            dic = {}
            for i in range(len(groupSizes)):
                key = groupSizes[i]
                dic[key] = dic.setdefault(key,[]) + [i]
            res = []
            for key in dic.iterkeys():
                inx = 0
                while inx + key <= len(dic[key]):
                    res.append(dic[key][inx:inx+key])
                    inx += key
            return res
  • 相关阅读:
    Laravel 5.2 使用 JWT 完成多用户认证 | Laravel China 社区
    (上线时清缓存)laravel 5.1 的程序性能优化(配置文件)
    linux计划任务及压缩归档
    用户及用户管理
    vim编辑器
    linux进阶命令
    权限管理
    linux基础命令2
    linu基础命令1
    连接Xshell
  • 原文地址:https://www.cnblogs.com/seyjs/p/12026242.html
Copyright © 2020-2023  润新知