题解 | 成绩排序

成绩排序

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

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            int n = in.nextInt();
            int op = in.nextInt();
            Student[] a = new Student[n];
            for(int i=0; i<n; i++){
                a[i] = new Student(in.next(), i, in.nextInt());
            }
            Arrays.sort(a, (s1, s2) -> {
                if(s1.score==s2.score){
                    return s1.name_idx - s2.name_idx;
                }else{
                    if(op==1){
                        return s1.score - s2.score;
                    }else{
                        return s2.score - s1.score;
                    }
                }
            });
            for(Student s : a){
                System.out.println(s.name + " " + s.score);
            }
        }
    }

    static class Student{
        public String name;
        public int name_idx; // 记录输入顺序
        public int score;

        Student(String name, int name_idx, int score){
            this.name = name;
            this.name_idx = name_idx;
            this.score = score;
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务