Leetcode406 根據身高重建佇列

2021-10-07 21:45:03 字數 736 閱讀 6407

題目:

假設有打亂順序的一群人站成乙個佇列。 每個人由乙個整數對(h, k)表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。 編寫乙個演算法來重建這個佇列。

思路:

按身高從大到小排,按序號從小到大拍

依次按順序嵌入陣列

思路不複雜,但**很精髓,值得一看

乙個是重構 sort 方法,在某些地方很好用,值得記一下。

另乙個是 list 的 add方法。還有索引這個引數。且插入時會自動將原索引的數後移這一點值得注意。

**:

class

solution})

;//2.在k位置上插入當前(h,k)

list<

int[

]> list=

newarraylist

<

>()

;for

(int

p:people)

list.

add(p[1]

,p);

//引數1為index(當前人(h,k)的k),引數2為新增到list中的人(h,k)

return list.

toarray

(new

int[list.

size()

][2]

);}}

LeetCode 406 根據身高重建佇列

題目鏈結 題目描述 假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 h,k 表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。編寫乙個演算法來重建這個佇列。注意 總人數少於1100人。示例輸入 7,0 4,4 7,1 5,0 6,1 5,2 輸出 5,0 7,0 5,2...

leetcode406 根據身高重建佇列

參考 sort自定義函式 如果想讓元素按照公升序排序就返回p1p2 vectorint,int reconstructqueue vectorint,int people 按照第一位降序,第二位公升序排序 sort people.begin people.end comp vectorint,int...

leetcode 406 根據身高重建佇列

c 排序,然後插入。假設候選隊列為 a,已經站好隊的隊列為 b.從 a 裡挑身高最高的人 x 出來,插入到 b.因為 b 中每個人的身高都比 x 要高,因此 x 插入的位置,就是看 x 前面應該有多少人就行了。比如 x 前面有 5 個人,那 x 就插入到佇列 b 的第 5 個位置。class sol...