题解 | 明明的随机数
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
读取时使用PriorityQueue自动排序,输出时比较上一个值的大小即可保证只输出一次。读取时使用BufferedReader、输出时使用StringBuilder和PrintWriter可以优化IO性能。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.PriorityQueue; public class Main { static final int MAX = 1000; static PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(MAX); public static void main(String[] args) { try (BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(System.out)) { int n = Integer.parseInt(in.readLine()); for (int i = 0; i < n; i++) { priorityQueue.add(Integer.parseInt(in.readLine())); } StringBuilder result = new StringBuilder(); int lastValue = -1; while (!priorityQueue.isEmpty()) { int value = priorityQueue.poll(); if (value > lastValue) { result.append(value).append("\n"); } lastValue = value; } out.print(result.toString()); } catch (IOException e) { e.printStackTrace(); } } }