[BaekJoon]1927最小ヒップ(java)
7511 ワード
🔗 質問リンク
https://www.acmicpc.net/problem/1927
👨🏻💻 作成されたコード
import java.io.*;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
PriorityQueue<Integer> heap = new PriorityQueue<>();
for (int i=0; i<n; i++) {
int x = Integer.parseInt(br.readLine());
if (x != 0) {
heap.offer(x);
}
else {
if (heap.peek()!=null) {
bw.write(heap.poll()+"\n");
}
else {
bw.write(0+"\n");
}
}
}
bw.flush();
bw.close();
}
}
📝 整理する
JAvaが提供するライブラリPriorityQueueは通常最小ヒップと同じであるため,この問題はPriorityQueueを用いて簡単な解答を行った.
他の人の上位に位置するパフォーマンスの良いコードから、すべての人が直接heap構造を実現していることがわかります.
このように,PriorityQueue自体はメモリや時間などの性能面で直接実現するコードよりも優れていない.
Reference
この問題について([BaekJoon]1927最小ヒップ(java)), 我々は、より多くの情報をここで見つけました https://velog.io/@seongwon97/BaekJoon-1927-최소-힙-javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol