假設有打亂順序的一群人站成乙個佇列。 每個人由乙個整數對(h, k)表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。 編寫乙個演算法來重建這個佇列。
注意:
總人數少於1100人。
示例:
輸入:用雜湊表記錄每個身高的k值;[[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值插入佇列,因為此時最高的前面的個數是只取決於其同等身高的人,跟其它人高的人無關;
同理,依次將剩餘的人中最高人高的人取出插入到佇列中去。
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...