题解 | #输入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; } }