LeetCode 1282. 用户分组———排序,模拟
原题链接
中等
作者:
szh_2003
,
2022-08-14 19:51:21
,
所有人可见
,
阅读 153
const int maxn = 550;
struct Person {
int val, index;
bool operator < (const Person &p)const {
return val < p.val;
}
}per[maxn];
class Solution {
public:
vector<vector<int>> groupThePeople(vector<int>& v) {
vector<vector<int>> res;
int n = v.size();
for(int i = 0; i < n; i++) per[i] = {v[i], i};
sort(per, per + n);
vector<int> temp;
int i = 0;
while(i < n) {
int j = i;
while(per[j].val == per[i].val && temp.size() < per[i].val) temp.push_back(per[j++].index);
res.push_back(temp);
temp.clear();
i = j;
}
return res;
}
};