题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
两种方法(Java):
法1:HashMap和TreeSet(不推荐)
import java.util.*; public class Main{ public static void main(String[] args) { scanStr(); } private static void scanStr() { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); Map<Integer, Integer> map = new HashMap<>(); TreeSet ts = new TreeSet(); while(scan.hasNext()) { int k = scan.nextInt(); int v = scan.nextInt(); if(map.containsKey(k)) { map.put(k, map.get(k) + v); }else { map.put(k , v); } ts.add(k); } Iterator it = ts.iterator(); while(it.hasNext()) { int k1 = (int)it.next(); System.out.println(k1 + " " + map.get(k1)); } } }
法2:TreeMap (推荐)
import java.util.*; public class Main{ public static void main(String[] args) { scanStr(); } private static void scanStr() { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); TreeMap<Integer, Integer> map = new TreeMap<>(); while(scan.hasNext()) { int k = scan.nextInt(); int v = scan.nextInt(); if(map.containsKey(k)) { map.put(k, map.get(k) + v); }else { map.put(k , v); } } for(int i: map.keySet()) { System.out.println(i + " " + map.get(i)); } } }