题解 | 成绩排序
成绩排序
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;
}
}
}

查看14道真题和解析