![]()
class Solution {
public:
vector<vector<int>> groupThePeople(vector<int>& groupSizes) {
map<int, vector<int> > m;//每个size组包含的元素
set<int> s;//记录用户组的size,比如示例1中有1,3 则记为1,3
vector<vector<int>> ans;
for(unsigned int i=0;i<groupSizes.size();i++){
m[groupSizes[i]].push_back(i);
s.insert(groupSizes[i]);
}
for(auto it=s.begin();it!=s.end();it++){
int gsize=*it;
int gnum=m[gsize].size()/gsize;
int p=m[gsize].size()-1;
for(int j=0;j<gnum;j++){
vector<int> level;
for(int k=0;k<gsize;k++){
level.push_back(m[gsize][p--]);
}
ans.push_back(level);
}
}
return ans;
}
};