题解 | #输入n个整数,输出其中最小的k个#
输入n个整数,输出其中最小的k个
https://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
/*HJ58 输入n个整数,输出其中最小的k个*/
public class HJ58 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt(); //第一行输入两个整数n和k
Integer s1 [] = new Integer[n];
for(int i=0;i<n;i++)
s1[i] = sc.nextInt();
Comparator<Integer> c = new Mycomparator() ;
Arrays.sort(s1,c);
for(int j=0;j<k;j++)
System.out.print(s1[j]+" ");
}
}
/*Java中的Arrays.sort()方法默认将数组元素从大到小排序. 要实现从大到小排序java也提供了一种方法:
Arrays中的sort(T[] a, Comparator<?super T> c),
但是传入的数组类型不能是基本类型(int char double),只能使用对应的类(Integer),因为Comparator接口中的
compare()方法默认从小到大排序,我们只需要重写这个方法就行了.*/
class Mycomparator implements Comparator<Integer> {
@Override
public int compare(Integer t1, Integer t2) {
if (t1 < t2)
return -1;
if (t1 > t2)
return 1;
return 0;
}
@Override
public boolean equals(Object o) {
return false;
}
}
查看14道真题和解析