合并表记录
描述
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:先输入键值对的个数n(1 <= n <= 500),接下来n行每行输入成对的index和value值,以空格隔开
输出描述:输出合并后的键值对(多行)
示例1
输入:
4
0 1
0 2
1 2
3 4
输出:
0 3
1 2
3 4
示例2
输入:
3
8 9
0 1
0 2
复制
输出:
0 3
8 9
思路
定义键值对个数,因为有序,所以用TreeMap
循环输入key,value,循环次数为定义键值对个数
containsKey判断当前map中是已存有,如有,把value相加再插入map,没有就插入map
然后keySet()遍历所有key然后输出
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
TreeMap<Integer,Integer> map = new TreeMap<>();
for (int i = 0; i < a; i++) {
int m = sc.nextInt();
int n = sc.nextInt();
if (map.containsKey(m)) {
map.put(m,map.get(m)+n);
}else {
map.put(m,n);
}
}
Set<Integer> keySet = map.keySet();
for (Integer keys: keySet) {
System.out.println(keys+" "+map.get(keys));
}
}
}
该博客介绍了一种使用Java的TreeMap数据结构来合并具有相同索引的数据记录,并对数值进行求和的方法。输入是键值对的个数和一系列的索引-value对,输出是合并后的键值对,按索引升序排列。示例展示了如何处理输入数据并生成最终的输出。
1287

被折叠的 条评论
为什么被折叠?



