class Solution {
public:
static bool cmp(const vector<int>& x,const vector<int>& y){
if(x[0] == y[0]){
if(x[1] < y[1]) return true;
return false;
}
if(x[0] > y[0]) return true;
return false;
}
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
sort(people.begin(),people.end(),cmp);
list<pair<int,int>> L;
int N = people.size();
for(int i=0;i<N;i++){
int T = people[i][1];
bool flag = true;
for(list<pair<int,int>>::iterator p=L.begin();p!=L.end();p++){
if(T==0){
L.insert(p,make_pair(people[i][0],people[i][1]));
flag = false;
break;
}
T--;
}
if(flag) L.push_back(make_pair(people[i][0],people[i][1]));
}
vector<vector<int>> ans(N,vector<int>(2,0));
int loc = 0;
for(list<pair<int,int>>::iterator p=L.begin();p!=L.end();p++){
ans[loc][0] = p->first;
ans[loc][1] = p->second;
loc++;
}
return ans;
}
};
No.106 - LeetCode406
最新推荐文章于 2022-01-14 20:38:22 发布