有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。

你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外,题目给出的数据保证至少存在一种解决方案。

示例 1:

输入:groupSizes = [3,3,3,3,3,1,3]
输出:[[5],[0,1,2],[3,4,6]]
解释:
其他可能的解决方案有 [[2,1,6],[5],[0,4,3]] 和 [[5],[0,6,2],[4,3,1]]。

示例 2:

输入:groupSizes = [2,1,3,3,3,2]
输出:[[1],[0,5],[2,3,4]]

提示:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/group-the-people-given-the-group-size-they-belong-to
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
————————
具体就是先粗分类再细分类,其C++代码如下:

class Solution {public:vector<vector<int>> groupThePeople(vector<int>& groupSizes) {map<int,vector<int>> group;  // 创建一个哈希表for(int i=0;i<groupSizes.size();i++)  // 粗分类,得到每种用户组的成员个数{group[groupSizes[i]].push_back(i);}vector<vector<int>> groups;  // 存放用于返回的二维数组for (auto gro = group.begin(); gro != group.end(); ++gro)  // 遍历哈希表中的每个元素值{int index = gro->first;  // 获得哈希表中每个元素的键vector<int> men = gro->second;  // 获得哈希表中每个元素的的键对应的值for(int i=0;i<(men.size()/index);++i)  // 细分类,每一类用户组中成员可以划分为men.size()/index组{vector<int> dp;for(int j=i*index;j<((i+1)*index);++j)  // 划分的每一组的成员个数为index个{dp.push_back(men[j]);}groups.push_back(dp);}}return groups;}
};

leetcode —— 1282. 用户分组相关推荐

  1. LeetCode 1282. 用户分组(桶排序思想)

    1. 题目 有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组.给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返 ...

  2. 【算法】1282. 用户分组(多语言实现)

    文章目录 1282. 用户分组: 样例 1: 样例 2: 提示: 分析 题解 rust go typescript c c++ java python 原题传送门:https://leetcode.c ...

  3. Java 第 33 课 1282. 用户分组 523. 连续的子数组和

    第 33 课 [1282. 用户分组](https://leetcode-cn.com/problems/group-the-people-given-the-group-size-they-belo ...

  4. C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息

    在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码,希望从更高一个层次,向大家介绍微信的应用 ...

  5. C#开发微信门户及应用(5)--用户分组信息管理

    在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方面停止了研究,而是继续深入探索这方面的技术,为了更好的应用起 ...

  6. leetcode1282. 用户分组(贪心算法)

    有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组.给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情 ...

  7. (转)C#开发微信门户及应用(5)--用户分组信息管理

    http://www.cnblogs.com/wuhuacong/p/3695351.html 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继 ...

  8. 微信公众号开发之用户分组

    具体参照微信官方文档. 创建用户分组 /*** 创建分组* @param groupName 分组名* @return Integer 分组ID*/ public static Integer cre ...

  9. 微信公众号渠道二维码怎么生成?可以进行用户分组吗?

    公众号渠道二维码是一种带参数的二维码,微信公众平台为服务号提供了生成带参二维码的接口,满足服务号的推广分析需求,运营者可以通过渠道二维码来判定粉丝来源,并对用户进行分组管理. 微信公众号渠道二维码的作 ...

最新文章

  1. Linux BSP非标准HDMI分辨率
  2. 死磕18个Java 8的日期处理,工作必用!
  3. .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)...
  4. 15个PHP库,你值得拥有!(下)
  5. 解释器和编译器的区别
  6. IOS原生地图与高德地图
  7. C++ STL之Set
  8. 计算页数_中级会计师计算题、综合题的审题注意事项与解题思路
  9. ctrl+shift+f被搜狗输入法占用的解决方法
  10. java大致了解_学习Java第一天,大致了解
  11. 全网首发:ProGuard如何混淆多个包
  12. Luogu1880 石子合并
  13. 什么是 Rootkit?
  14. linux github安装 Pytorch
  15. APP上架到各大应用商店的小总结
  16. android inflate,android inflate详解
  17. 机器学习--泛化能力
  18. RK3126 人体感应模块驱动
  19. 《实用VC编程之玩转控件》第3课:Button按钮控件
  20. Python 文件

热门文章

  1. Windows服务卸载之后未重启机器之前再安装问题
  2. 怎么用javascript进行拖拽(转摘)
  3. TypeScript 接口(Interface)
  4. TypeScript 变量声明
  5. 容器编排技术 -- Kubernetes kubectl run 命令详解
  6. Java 11新特性
  7. Hibernate缓存 - 第一级缓存
  8. 【Day04】介绍防抖节流原理、区别以及应用,并用 JavaScript 进行实现
  9. 【教程】VsCode搭建Java开发环境
  10. 阿里前端开源的一些产品