还是大佬厉害,我的过了50%,提示数组越界
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int length = input.nextInt();
		Node[] list = new Node[length];
		int size = 0;
		int time = 0;
		HashMap<String, Integer> map = new HashMap<>();
		while (input.hasNext()) {
			String s = input.next();
			int num = input.nextInt();
			if (map.containsKey(s)) {
				if (num > list[map.get(s)].num) {
					list[map.get(s)].num = num;
					list[map.get(s)].time = time;
				}
			} else {
				if (size < length) {
					list[size] = new Node(s, num, time);
					map.put(s, size);
					size++;
				} else {
					Comparator<Node> cmp = new MyComparator();
					Arrays.sort(list, cmp);
					map.remove(list[0].str);
					System.out.println(list[0].str + " " + list[0].num);
					list[0] = new Node(s, num, time);
					map.put(s, 0);
					for (int i = 1; i < length; i++) {
						map.put(list[i].str, i);
					}
				}
			}
			time++;
		}
	}

	static class Node {
		String str;
		int num;
		int time;

		public Node(String str, int num, int time) {
			this.str = str;
			this.num = num;
			this.time = time;
		}
	}

	static class MyComparator implements Comparator<Node> {
		@Override
		public int compare(Node a, Node b) {
			return a.time < b.time ? -1 : 1;
		}
	}
}