牛客网|输入n个整数,输出其中最小的k个
题目信息
输入n个整数,输出其中最小的k个。
本题有多组输入样例,请使用循环读入,比如while(cin>>)等方式处理
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
输出一个从小到大排序的整数数组
示例输入:
5 2
1 3 5 7 2
示例输出:
1 2
题解
题意很明确,给一个指定大小的数组,对数组内容排序,然后取排序后的前k个元素
编码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class LeastNNum {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input;
while ((input = br.readLine()) != null) {
// 取第一次输入,解析出数组大小和要取的元素个数
String[] inputArr = input.split(" ");
int[] numArr = new int[Integer.parseInt(inputArr[0])];
// 第二行输入,取数组元素信息
String[] numStrArr = br.readLine().split(" ");
// 将字符数组转换为int数组
for (int i=0; i<numStrArr.length; i++) {
numArr[i] = Integer.parseInt(numStrArr[i]);
}
// 数组排序
Arrays.parallelSort(numArr);
// 取前k个值信息到缓冲字符串
StringBuilder sb = new StringBuilder();
for (int i=0; i<Integer.parseInt(inputArr[1]); i++) {
sb.append(numArr[i]).append(" ");
}
System.out.println(sb.substring(0, sb.length()-1));
}
}
}
还没有评论,来说两句吧...