题解 | #合并表记录#

合并表记录

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

思路

1、第一个输入组数,可以不用管

2、根据下标去重有两种操作,①利用set集合的特性,②手动去重key然后将value相加

3、键值对可以利用Map的特性,其中TreeMap能够自动按照key进行排序

import java.util.*;

public class Main {
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        Map<Integer,Integer> result = new TreeMap<>();
        int number = sc.nextInt();
        while(sc.hasNextLine()) {
            String[] datas = sc.nextLine().split(" ");
            if(datas.length < 2){
                continue;
            }
            Integer key = Integer.parseInt(datas[0]);
            Integer value = result.get(key) == null ? Integer.parseInt(datas[1]) : result.get(key) + Integer.parseInt(datas[1]);
            result.put(key,value);
        }
        Set<Map.Entry<Integer, Integer>> entries = result.entrySet();
        for (Map.Entry<Integer, Integer> entry:entries) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }    
}
全部评论

相关推荐

06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

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