题解 | #合并表记录# 在牛客上学习笔试

合并表记录

https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        // 使用 StreamTokenizer 读取输入
        StreamTokenizer st = new StreamTokenizer(new BufferedReader(
                    new InputStreamReader(System.in)));
        st.nextToken();
        int n = (int) st.nval; // 读取键值对的个数

        // 使用 TreeMap 存储索引和值的映射关系,以保证按照索引值升序输出
        Map<Integer, Integer> map = new TreeMap<>();

        // 读取并合并键值对
        for (int i = 0; i < n; i++) {
            st.nextToken();
            int index = (int) st.nval; // 读取索引
            st.nextToken();
            int value = (int) st.nval; // 读取值

            // 将值累加到已有索引的值上,或者添加新的索引和值
            map.put(index, map.getOrDefault(index, 0) + value);
        }

        // 输出合并后的键值对
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
}

全部评论

相关推荐

11-04 10:30
已编辑
门头沟学院 研发工程师
开心小狗🐶:“直接说答案”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务