HJ8 合并表记录

Posted 可持续化发展

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HJ8 合并表记录相关的知识,希望对你有一定的参考价值。

描述
数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开

输出描述:
输出合并后的键值对(多行)

示例1
输入:
4
0 1
0 2
1 2
3 4
复制
输出:
0 3
1 2
3 4

import java.util.*;

public class Main {
    /**
     * 数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
     *
     * 输入描述:
     * 先输入键值对的个数
     * 然后输入成对的index和value值,以空格隔开
     *
     * 输出描述:
     * 输出合并后的键值对(多行)
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = Integer.parseInt(scanner.nextLine());
        Map<Integer, Integer> tree = new TreeMap<>();
        while (num > 0){
            String kv = scanner.nextLine();
            String[] s = kv.split(" ");
            if (s.length != 2){
                continue;
            }
            if (tree.containsKey(Integer.parseInt(s[0]))){
                tree.put(Integer.parseInt(s[0]), tree.get(Integer.parseInt(s[0])) + Integer.parseInt(s[1]));
            }else {
                tree.put(Integer.parseInt(s[0]), Integer.parseInt(s[1]));
            }
            num--;
        }
        for (Integer i : tree.keySet()){
            System.out.println(i + " " + tree.get(i));
        }
    }
}

以上是关于HJ8 合并表记录的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔试题(js高级代码片段)

4.3 合并重复的条件执行片段

MSSQL—列记录合并

我的代码似乎合并了数据集,但它没有更新到访问数据库

算法 合并表记录

Oracle 多行记录合并