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

全部评论

相关推荐

04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务