題目如下:
假設有打亂順序的一群人站成乙個佇列。 每個人由乙個整數對(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]]
思路
首先對陣列排序,根據身高從高到低,同等身高下,根據排在前面的人的人數從少到多排序。
新建list儲存結果,當list數量大於等於排在前面的人的人數時直接新增,否則新增到所對應的index
ac解法
class solution
list list = new arraylist<>();
collections.addall(list, people);
list.sort(new comparator() else
}});
list res = new arraylist<>();
for (int ints : list)
res.add(target, ints);
}int resarray = new
int[res.size()][2];
for (int i = 0; i < res.size(); i ++)
return resarray;
}}
leetcode 根據身高重建佇列
這一題,我當時真的沒想到乙個好的思路,比較簡潔,比較work的是思路,於是我看了答案 題目 假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 h,k 表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。編寫乙個演算法來重建這個佇列。注意 總人數少於1100人 輸入 7,0 ...
LeetCode 根據身高重建佇列
假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 h,k 表示,其中 h 是這個人的身高,k 是應該排在這個人前面且身高大於或等於 h 的人數。例如 5,2 表示前面應該有 2 個身高大於等於 5 的人,而 5,0 表示前面不應該存在身高大於等於 5 的人。編寫乙個演算法,根據每個人的身高 h...
《LeetCode筆記103》 根據身高重建佇列
假設有打亂順序的一群人站成乙個佇列。每個人由乙個整數對 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 ...