leetcode中「根據身高重建佇列」題解

2021-10-25 10:30:07 字數 813 閱讀 3322

根據身高重建佇列

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

方法一:先排序後插入

首先陣列按照先h高度降序,k公升序排序,遍歷排序後的陣列,根據k插入到k的位置上。

class

solution})

; linkedlist<

int[

]> list =

newlinkedlist

<

>()

;for

(int

i : people)

return list.

toarray

(new

int[list.

size()

][2]

);}}

核心思想:高個子先站好位,矮個子插入到k位置上,前面肯定有k個高個子,矮個子再插入到前面也滿足k的要求。

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