leetcode —— 1282. 用户分组
有 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. 用户分组相关推荐
- LeetCode 1282. 用户分组(桶排序思想)
1. 题目 有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组.给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返 ...
- 【算法】1282. 用户分组(多语言实现)
文章目录 1282. 用户分组: 样例 1: 样例 2: 提示: 分析 题解 rust go typescript c c++ java python 原题传送门:https://leetcode.c ...
- Java 第 33 课 1282. 用户分组 523. 连续的子数组和
第 33 课 [1282. 用户分组](https://leetcode-cn.com/problems/group-the-people-given-the-group-size-they-belo ...
- C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息
在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码,希望从更高一个层次,向大家介绍微信的应用 ...
- C#开发微信门户及应用(5)--用户分组信息管理
在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方面停止了研究,而是继续深入探索这方面的技术,为了更好的应用起 ...
- leetcode1282. 用户分组(贪心算法)
有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组.给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情 ...
- (转)C#开发微信门户及应用(5)--用户分组信息管理
http://www.cnblogs.com/wuhuacong/p/3695351.html 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继 ...
- 微信公众号开发之用户分组
具体参照微信官方文档. 创建用户分组 /*** 创建分组* @param groupName 分组名* @return Integer 分组ID*/ public static Integer cre ...
- 微信公众号渠道二维码怎么生成?可以进行用户分组吗?
公众号渠道二维码是一种带参数的二维码,微信公众平台为服务号提供了生成带参二维码的接口,满足服务号的推广分析需求,运营者可以通过渠道二维码来判定粉丝来源,并对用户进行分组管理. 微信公众号渠道二维码的作 ...
最新文章
- Linux BSP非标准HDMI分辨率
- 死磕18个Java 8的日期处理,工作必用!
- .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)...
- 15个PHP库,你值得拥有!(下)
- 解释器和编译器的区别
- IOS原生地图与高德地图
- C++ STL之Set
- 计算页数_中级会计师计算题、综合题的审题注意事项与解题思路
- ctrl+shift+f被搜狗输入法占用的解决方法
- java大致了解_学习Java第一天,大致了解
- 全网首发:ProGuard如何混淆多个包
- Luogu1880 石子合并
- 什么是 Rootkit?
- linux github安装 Pytorch
- APP上架到各大应用商店的小总结
- android inflate,android inflate详解
- 机器学习--泛化能力
- RK3126 人体感应模块驱动
- 《实用VC编程之玩转控件》第3课:Button按钮控件
- Python 文件