牛客网|输入n个整数,输出其中最小的k个

小鱼儿 2022-11-16 01:47 288阅读 0赞

题目信息

输入n个整数,输出其中最小的k个。

本题有多组输入样例,请使用循环读入,比如while(cin>>)等方式处理

输入描述

  1. 第一行输入两个整数nk
  2. 第二行输入一个整数数组

输出描述

  1. 输出一个从小到大排序的整数数组

示例输入

  1. 5 2
  2. 1 3 5 7 2

示例输出

  1. 1 2

题解

题意很明确,给一个指定大小的数组,对数组内容排序,然后取排序后的前k个元素

编码

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Arrays;
  5. public class LeastNNum {
  6. public static void main(String[] args) throws NumberFormatException, IOException {
  7. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  8. String input;
  9. while ((input = br.readLine()) != null) {
  10. // 取第一次输入,解析出数组大小和要取的元素个数
  11. String[] inputArr = input.split(" ");
  12. int[] numArr = new int[Integer.parseInt(inputArr[0])];
  13. // 第二行输入,取数组元素信息
  14. String[] numStrArr = br.readLine().split(" ");
  15. // 将字符数组转换为int数组
  16. for (int i=0; i<numStrArr.length; i++) {
  17. numArr[i] = Integer.parseInt(numStrArr[i]);
  18. }
  19. // 数组排序
  20. Arrays.parallelSort(numArr);
  21. // 取前k个值信息到缓冲字符串
  22. StringBuilder sb = new StringBuilder();
  23. for (int i=0; i<Integer.parseInt(inputArr[1]); i++) {
  24. sb.append(numArr[i]).append(" ");
  25. }
  26. System.out.println(sb.substring(0, sb.length()-1));
  27. }
  28. }
  29. }

发表评论

表情:
评论列表 (有 0 条评论,288人围观)

还没有评论,来说两句吧...

相关阅读