题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

import java.util.*;
import java.util.stream.Collectors;


/**
 * @description 可能会出现同名 所以不能通过使用Map存名字和成绩然后对成绩进行稳定排序的方法来解决
 * @date 2024-06-06 10:38
 */
public class Main {  
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int amount = sc.nextInt();
        int order = sc.nextInt();
        int [][]score = new int[amount][2];
        HashMap<Integer, String> map = new HashMap<>();
        sc.nextLine();//清空输入数字后的回车 防止第一次存回车空数据进入data导致data[1]越界
        for(int i=0;i<amount;i++){
            String[] data = sc.nextLine().split("\\s+");
            score[i][0]=i;
            score[i][1]=Integer.parseInt(data[1]);
            map.put(i,data[0]);
        }
            Arrays.sort(score,(o1,o2)->{
                if(order==0)
                    return  o2[1]-o1[1];
                else
                    return  o1[1]-o2[1];
            });  //降序
        for(int j=0;j<amount;j++){
            System.out.println(map.get(score[j][0])+" "+score[j][1]);
        }
    }
}



全部评论

相关推荐

CVTE校招内推:可以试试我们这,硬件还没招满
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务