class Solution {
public:
vector<vector<int>> groupThePeople(vector<int>& groupSizes) {
map<int, vector<int>> cnt;
for(int i=0;i<groupSizes.size();i++){
int groupsize = groupSizes[i];
int peopleid = i;
if (cnt.find(groupsize)==cnt.end()){
vector<int> temp(1, peopleid);
cnt[groupsize] = temp;
}
else{
cnt[groupsize].push_back(peopleid);
}
}
vector<vector<int>> res;
for(auto it=cnt.begin();it!=cnt.end();it++){
int size = it->first; // 3
vector<int> peoples = it->second; //[1,2,3,4,5,6]
if (peoples.size()%size!=0){
cout<<"error"<<endl;
}
else{
// process
int processnum = peoples.size()/size; // 2
for(int i = 0;i<processnum;i++){ // 0, 1
vector<int> temp;
for(int j=0;j<size;j++){ // 0,1,2
temp.push_back(peoples[size*i+j]);
}
res.push_back(temp);
}
}
}
return res;
}
};
1282. Group the People Given the Group Size They Belong To
最新推荐文章于 2024-05-22 18:44:11 发布