问题描述
牛客网 HJ58 输入n个整数,输出其中最小的k个 (opens in a new tab),难度中等。
描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围:,输入的整数满足
输入描述
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述
从小到大输出最小的k个整数,用空格分开。
示例 1
输入:5 2 1 3 5 7 2 输出:1 2
题解
Main.java
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int num = scanner.nextInt();
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int i = 0; i < n; i++) {
pq.add(scanner.nextInt());
}
for (int i = 0; i < num; i++) {
System.out.print(pq.poll());
if (i != num - 1) {
System.out.print(" ");
}
}
scanner.close();
}
}