406 根據身高重建佇列

2021-10-24 17:17:27 字數 562 閱讀 7265

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

解題思路:先按照高度從高到低排序,相同的高度在按照k從低到高排序,然後依次將他們放在輸出佇列中與k值對應相等的索引位置上,因為矮個子的人對高個子來說是看不見的,所以後放置矮個子不會影響到高個子前面比他高的人的個數,**如下:

class

solution

:def

reconstructqueue

(self, people: list[list[

int]])

-> list[list[

int]]:

people.sort(key=

lambda x:

(-x[0]

, x[1]

))res =

for p in people:

res.insert(p[1]

, p)

return res

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

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

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