题目:
奥运会开始了,请你为各个国家和地区作奖牌排序,按照金牌>银牌>铜牌的格式顺序排序
输入:
第一行 告诉你共有n个国家
接下来的n行 每行三个数字 分别代表 金牌数了 银牌数量 铜牌数量 中间用空格隔开
输出:
输出n行 每行三个数字 按照题意进行排序
样例输入:
5
1 2 3
2 3 4
1 4 6
1 4 3
0 3 4
样例输出:
2 3 4
1 4 6
1 4 3
1 2 3
0 3 4
思路比较简单
优先比较第一列数字,然后比较第二列数字,最后比较第三列数字,都按从大到小排序就好了
这里主要分享一下lambda表达式和comparator的使用
代码:
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[][] arr = new int[n][3];for (int i = 0; i < n; i++) {//输入for (int j = 0; j < 3; j++) {arr[i][j] = scanner.nextInt();}}sort(arr);}public static void sort(int[][] arr){int len = arr.length;Arrays.sort(arr,(o1,o2)->{if(o1[0] == o2[0]){if(o1[1] == o2[1]){return o2[2] - o1[2];}return o2[1] - o1[1];}return o2[0] - o1[0];});for (int i = 0; i < len; i++) {//输出for (int j = 0; j < arr[i].length; j++) {if(j!=0){System.out.print(" ");}System.out.print(arr[i][j]);}System.out.println();}}