题解 | #输入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 的区别
int num = in.nextInt();
int limit = in.nextInt();
int[] limitArr = new int[limit];
for(int i = 0;i<num;i++){
int n = in.nextInt();
compare(n,limitArr,limit-1);
}
for(int i=0;i<limit;i++){
System.out.print(limitArr[i]);
if(i<limit-1){
System.out.print(" ");
}
}
}
public static boolean compare(int n,int[] limitArr,int index){
if(index<0){
return false;
}
int x = limitArr[index];
if(x==0||n<x){
int next =index-1<0?0: limitArr[index-1];
boolean flag = compare(n,limitArr,index-1);
if(flag){
if(next>0){
limitArr[index] =next;
}
return flag;
} else{
limitArr[index] = n;
return true;
}
}
return false;
}
}
查看18道真题和解析
