import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); TreeMap<Integer, Long> map = new TreeMap<>(); for(int i = 0; i < n; i++){ int a = in.nextInt(); long b = in.nextLong(); if(map.containsKey(a)){ long c = map.get(a)+b; map.put(a, c); }else{ map.put(a, b); } } for(int a: map.keySet()){ System.out.println(a + " " + map.get(a)); } } }
无法使用数组哈希的话,xi的范围超过了;hashmap的key是根据键(key)的哈希值来确定存储位置。哈希值是通过调用键(key)对象的 hashCode() 方法计算得到的,这个哈希值决定了键值对在哈希表中的存储位置。因此,HashMap 中的键(key)的存储顺序与它们的大小无关,而是与它们的哈希值有关。所以本题使用Treemap,TreeMap 是一个有序的映射,它可以根据键的自然顺序或自定义的比较器进行排序。
#牛客春招刷题训练营# https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201