zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    浅析区间问题
    关于参加信息竞赛
    路爷爷语录
    CentOS-7安装python虚拟环境
    开发笔记(不定时更新)
    Redis有序集合的权重值选择
    数据缓存(Redis)流程设计--思路
    Flask框架之配置日志信息
    Flask框架之一对多关系模型定义
    Flask框架之多对多关系模型类的定义
  • 原文地址:https://www.cnblogs.com/seyjs/p/12026242.html
Copyright © 2011-2022 走看看