關(guān)于我的 Leetcode 題目解答,代碼前往 Github:https://github.com/chenxiangcyr/leetcode-answers
使用 PriorityQueue 來(lái)模擬一個(gè)最小堆。
關(guān)于 PriorityQueue,請(qǐng)參見(jiàn) Java 優(yōu)先級(jí)隊(duì)列 PriorityQueue
public class TopK_Test {
private PriorityQueue<Integer> queue = new PriorityQueue<Integer>();
private int K = 10;
public void add(int i) {
if (queue.size() < K) {
queue.add(i);
} else {
// Min heap
int min = queue.peek();
if (i > min) {
queue.poll();
queue.add(i);
}
}
}
public void print() {
while (!queue.isEmpty()) {
Integer i = queue.poll();
System.out.println(i);
}
}
public static void main(String[] args) {
Random r = new Random();
TopK_Test t = new TopK_Test();
for (int i = 0; i < 100; i++) {
t.add(r.nextInt(100));
}
t.print();
}
}