根据身高重建队列—leetcode406
生活随笔
收集整理的這篇文章主要介紹了
根据身高重建队列—leetcode406
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
假設(shè)有打亂順序的一群人站成一個隊列。 每個人由一個整數(shù)對(h, k)表示,其中h是這個人的身高,k是排在這個人前面且身高大于或等于h的人數(shù)。 編寫一個算法來重建這個隊列。
注意:
總?cè)藬?shù)少于1100人。
示例
輸入: [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]輸出: [[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]思路:?將整數(shù)對 (h, k) 按照 h 降序排序,如果 h 相同,則按照 k 升序排序。排序完畢后,令結(jié)果數(shù)組為 ans,從頭開始遍歷數(shù)組,將數(shù)組中的每個元素插入到索引k前面的位置。代碼如下
class Solution { public:static bool cmp(const vector<int>& a, const vector<int>& b){if(a[0]!=b[0]) return a[0]>b[0]; // 按照 h 降序排序else return a[1]<b[1]; // 按照 k 升序排序}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), cmp);vector<vector<int>> ans;for(auto v:people){ans.insert(ans.begin()+v[1], v);}return ans;} };?
總結(jié)
以上是生活随笔為你收集整理的根据身高重建队列—leetcode406的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日温度—leetcode739
- 下一篇: 除自身以外数组的乘积—leetcode2