以矢量作为参数的地图
Map with a vector as a parameter
对于Leetcode:
有 n 个人的 ID 从 0 到 n - 1,每个人正好属于一个组。给定数组组长度 n 的大小告诉每个人所属的组大小,返回有的组和每个组包含的人员 ID。
您可以按任何顺序返回任何解决方案,这同样适用于 ID。此外,可以保证至少存在一个解决方案。
示例 1:
输入:组大小 = [2,1,3,3,3,3,2]
输出: [[1],[0,5],[2,3,4]]
class Solution {
public:
vector<vector<int>> groupThePeople(vector<int>& groupSizes) {
unordered_map<int,vector<int> > myMap;
int n=groupSizes.size();
vector<vector<int>> answer;
for(int i=0;i<n;i++){
myMap[groupSizes[i]].push_back(i); // myMap key/value ; key= group, value=index
cout<<i<<endl;
if(myMap[groupSizes[i]].size()==groupSizes[i]){
cout<<"pushed "<<i<<endl;
answer.push_back(myMap[groupSizes[i]]);
myMap[groupSizes[i]]={};
}
}
return answer;
}
};
地图是否包含一堆不同的向量,还是只有 1 个向量?
你能解释一下到底在推动什么吗?当你有map<int,vector<int>>;
时,你是否将组大小推送为键,然后值是索引?
因此,地图看起来像map[groupsize value, vector of indexes]
吗?
输出是如何获得第一个向量[1]
的?如果值 2 应该首先推送向量?
地图是否包含一堆不同的向量,还是只有 1 个 向量?
对于映射中的每个键,都存在一个向量作为值。在您的示例中,有 3 个向量:
- 键 "1", 矢量 ( 1 (
- 键 "2", 矢量 ( 0, 5 (
- 键 "3", 矢量 ( 2, 3, 4 (
你能解释一下到底在推动什么吗?当你有
map<int,vector<int>>;
你是否将组大小作为关键,并且 那么值是索引?
您正在推动什么以及在哪里推动取决于i
和n
的当前值。n
设置为大小groupSizes
,所以 6。i
范围为 0 到 5。在第一次迭代中,push_back
按以下方式调用:
myMap[groupSizes[0]].push_back(0);
groupSizes[0]
的值为"2",因为 [2,1,3,3,3,2] 的索引 0 是"2">myMap[groupSizes[0]]
在地图中搜索值"2"。如果密钥尚不存在,则将其插入。然后它返回值;如果它尚不存在,则创建它 ->将返回一个空向量。push_back(0)
将值"0"添加到值"2"的向量中
因此,地图看起来像map[组大小值,索引向量]吗?
是的,但请注意,组大小值在映射中分组。其中只有值
1、2 和 3,而不是 2、1、3、3、3、3 和 2。输出是如何获得第一个向量 [1] 的?如果值 2 应为 先被推了矢量?
我认为您的最终输出代码丢失了,但我猜您的输出只是迭代了您的结果向量。如果是这样的话,这个顺序只是一个快乐的巧合。groupSize 值告诉您,向量中将有多少个元素。因此,groupSize 值越低,它就越早完成并推送到结果向量中。所以"1"只包含一个元素,将首先被推入结果向量,如if(myMap[groupSizes[i]].size()==groupSizes[i])
。
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 以矢量作为参数的地图
- 我可以动态创建新地图并作为函数参数传递吗?
- 遍历地图并将该对用作参考参数 C++11
- 用于接收通用地图作为参数的模板函数
- 如何将模板函数指针作为值参数添加到地图中
- 如何使用可变参数模板作为 std::type_index 地图的键
- 通过参考传递地图时缺少模板参数
- OpenGL glTexImage2D 立方体地图和宽度/高度参数
- 如何将地图作为参数传递并在此方法中添加
- 将堆栈参数放入地图