《LeetCode筆記103》 根據身高重建佇列

2021-10-10 00:22:52 字數 848 閱讀 3295

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

注意:

總人數少於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]]

用雜湊表記錄每個身高的k值;

首先將最高的取出按期k值插入佇列,因為此時最高的前面的個數是只取決於其同等身高的人,跟其它人高的人無關;

同理,依次將剩餘的人中最高人高的人取出插入到佇列中去。

class solution:

def reconstructqueue(self, people: list[list[int]]) -> list[list[int]]:

count = {}

h_list =

for (h, k) in people:

if h not in count:

count[h] = [k]

else:

h_list.sort(reverse=true)

reuslt=

for h in h_list:

count[h].sort()

for k in count[h]:

reuslt.insert(k, [h, k])

return reuslt

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...

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 6,1 4,4 ...

leetcode406 根據身高重建佇列

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