标签:插入 return 21 people 406 vector 2022 ans 数字
先给数组排序,第一个数较大的在前面,如果第一个数字相同,第二个数字比较小的在前面。
之后再通过插入调整顺序,从头开始,按照第二个数字插入。
为什么这样做是正确的?
因为第二个数字是新插入的人的前面有几个人的身高高于等于新插入的人。在这个人插入的时候其他的人都比他高或者和他一样高,依照第二个数字插入就行了。
之后插入的人都是不如这个人高的,没有影响。
class Solution {
public:
vector<vector<int>> reconstructQueue(vector<vector<int>> &people) {
auto cmp = [&](vector<int> &a, vector<int> &b) {
if (a[0] != b[0]) {
return a[0] > b[0];
}
return a[1] < b[1];
};
sort(people.begin(), people.end(), cmp);
vector<vector<int>> ans;
for (vector<int> p : people) {
ans.insert(ans.begin() + p[1], p);
}
return ans;
}
};
作者:dodo_1202
链接:https://leetcode-cn.com/problems/queue-reconstruction-by-height/solution/pai-xu-yu-chu-li-tan-xin-zong-jie-xia-da-lbu6/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:插入,return,21,people,406,vector,2022,ans,数字 来源: https://blog.csdn.net/weixin_51187533/article/details/123631316
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。