题解 | #合并表记录#

合并表记录

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

解题思路:

  1. 看到关键词“索引/数值/键值对”,立马想到Map对象;
  2. 看到关键词“升序”,立马想到TreeMap对象。Map包含HashMap,LinkedHashMap,TreeMap常用实现类,其中HashMap无序,TreeMap是有序的。

注意点:

  1. map.getOrDefault(key,0)方法非常有用,如果查询不到key直接使用默认值0。如果使用map.get(key)的话,还需要判断map中是否包含key;
  2. Map对象for-each遍历条件的写法,Map.Entry<Integer, Integer> entry : map.entrySet()。

import java.util.Scanner;
import java.util.Map;
import java.util.TreeMap;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int count = in.nextInt();
            Map<Integer, Integer> map = new TreeMap<>();
            
            for(int i=0; i<count; i++){
                int key = in.nextInt();
                int value = in.nextInt();
                map.put(key, value+map.getOrDefault(key,0));
            }

            for(Map.Entry<Integer, Integer> entry : map.entrySet()){
                System.out.println(entry.getKey()+" "+entry.getValue());
            }           
        }
    }
}
全部评论

相关推荐

群星之怒:不是哥们,你就不好奇瘫痪三十年的老植物人是啥样的吗?
点赞 评论 收藏
分享
04-18 00:32
已编辑
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务