华为机试牛客刷题之HJ58 输入n个整数,输出其中最小的k个
HJ58 输入n个整数,输出其中最小的k个
描述
对于输入的 n 个整数,升序输出其中最小的 k 个。
输入描述:
第一行输入两个整数 n,k(1≦n≦1000; 1≦k≦n)。
第二行输入 n 个整数 a1 ,a2 ,…,an (1≦ai ≦10^4 ) 代表给定的数字。
输出描述:
在一行中升序输出最小的 k 个整数。
示例1
输入:5 2
1 3 5 7 2
输出:1 2
思路是调用Arrays.sort(numbers)
升序排序后取前k个是对的。
import java.util.Scanner;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
int n = in.nextInt();
int k = in.nextInt();
Integer[] numbers = new Integer[n];
for(int i=0;i<n;i++){
numbers[i] = in.nextInt();
}
Arrays.sort(numbers);
for(int j=0;j<k;j++){
System.out.print(numbers[j]+" ");
}
}
}
}