acwing2022秋招每日一题 1282. 用户分组
2022/8/17 6:24:19
本文主要是介绍acwing2022秋招每日一题 1282. 用户分组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目
有 n 个人被分成数量未知的组。每个人都被标记为一个从 0 到 n - 1 的唯一ID 。
给定一个整数数组 groupSizes ,其中 groupSizes[i] 是第 i 个人所在的组的大小。例如,如果 groupSizes[1] = 3 ,则第 1 个人必须位于大小为 3 的组中。
返回一个组列表,使每个人 i 都在一个大小为 groupSizes[i] 的组中。
每个人应该恰好只出现在一个组 中,并且每个人必须在一个组中。如果有多个答案,返回其中任何一个。可以 保证给定输入至少有一个有效的解。
思路
对于每个人,用hash存放每个人组别大小和下标。当hash的大小与组别大小一样时,加到结果集后面,最后输出。
解法
class Solution { public: vector<vector<int>> groupThePeople(vector<int>& groupSizes) { vector<vector<int>> res; // 建立一个哈希结构用来放尺寸和对应的下标 unordered_map<int, vector<int>> hash; for (int i = 0; i < groupSizes.size(); i++) { /* code */ int size = groupSizes[i]; hash[size].push_back(i); if (hash[size].size() == size) { res.push_back(hash[size]); hash[size].clear(); } } return res; } };
这篇关于acwing2022秋招每日一题 1282. 用户分组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享