题解 | #输入n个整数,输出其中最小的k个#
输入n个整数,输出其中最小的k个
https://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
int k = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
//输出前k小的数,需要进行k次擂台
for (int j = 1; j <= k; j++) {
//将第j个个视为最小数,进行守擂
int min = arr[j-1];
//记录真正最小数的下标
int index=0;
for (int i = j; i < arr.length; i++) {
//打擂开始
if (arr[i] < min) {
//擂主更换
min = arr[i];
//擂主登记
index=i;
}
}
System.out.print(min+" ");
//擂主坐上头把交椅,原擂主可再次进行擂台赛
int temp=arr[j-1];
arr[j-1]=min;
arr[index]=temp;
}
}
}
}
