題目
假設有打亂順序的一群人站成乙個佇列。 每個人由乙個整數對 (h, k) 表示,其中 h 是這個人的身高,k 是應該排在這個人前面且身高大於或等於 h 的人數。 例如:[5,2] 表示前面應該有 2 個身高大於等於 5 的人,而 [5,0] 表示前面不應該存在身高大於等於 5 的人。
編寫乙個演算法,根據每個人的身高 h 重建這個佇列,使之滿足每個整數對 (h, k) 中對人數 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]]
解題思路
(1)將整個陣列按照身高從高到低,身高相同時,k小的排在前面。
(2)建立乙個空的陣列,依次根據每乙個整數對中的k作為插入的索引,將整數對插入陣列中。
源**
class solution
else if (x[0] == y[0])
else
});for (int i = 0; i < people.size(); i++)
else
}return res;
}};
後續改進點:由於vector的插入比較耗時, 可以考慮改用list的方式這樣整體的時間複雜度為o(n*log(n) + n)
vector insert 的原始碼為:
letecode 程式設計學習(4)
題目 給定乙個整數陣列和乙個區間,計算有多少連續子陣列的和在區間範圍內 例如 陣列 3,0,5,2,2 區間為 1,3 則輸出的子陣列有 3 2,2 3,0 3,0,5,2,2 這5種,輸出為5。include include include include includestruct treeno...
letecode 程式設計學習(7)
題目奇偶鍊錶 給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 ...
letecode 程式設計學習(12)
題目 在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas i 公升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i 1 個加油站需要消耗汽油 cost i 公升。你從其中的乙個加油站出發,開始時油箱為空。如果你可以繞環路行駛一周,則返回出發時加油站的編號,否則返回 1。說明...