题解 | #合并表记录#
合并表记录
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));
}
}
}
