根據身高重建佇列

2021-09-26 04:59:30 字數 842 閱讀 3843

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

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

思路:先選出最高的一群人排成佇列s,因為沒有人比他們更高了,所以他們的k值就是他們的位置。再選出第二高的一群人,將他們插入佇列s,他們應該在的位置就是他們的k值。

比如:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]

選出最高一群人排成佇列s:[[7,0],[7,1]]

選出第二高插入佇列s:[[7,0][6,1][7,1]]

選出第三高插入佇列s:[5,0][7,0][5,2][6,1][7,1]

以此這樣排下去......

(這是一種貪心策略,不必證為什麼對)

class solution 

});listres = new arraylist<>();

for(int cur : people)

return res.toarray(new int[people.length]);

}}

LeetCode 根據身高重建佇列

題目如下 假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 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 ...

leetcode 根據身高重建佇列

這一題,我當時真的沒想到乙個好的思路,比較簡潔,比較work的是思路,於是我看了答案 題目 假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 h,k 表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。編寫乙個演算法來重建這個佇列。注意 總人數少於1100人 輸入 7,0 ...

LeetCode 根據身高重建佇列

假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 h,k 表示,其中 h 是這個人的身高,k 是應該排在這個人前面且身高大於或等於 h 的人數。例如 5,2 表示前面應該有 2 個身高大於等於 5 的人,而 5,0 表示前面不應該存在身高大於等於 5 的人。編寫乙個演算法,根據每個人的身高 h...