栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第 84 场双周赛 《6141. 合并相似的物品》--java

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第 84 场双周赛 《6141. 合并相似的物品》--java

题目:https://leetcode.cn/contest/biweekly-contest-84/problems/merge-similar-items/

大佬代码:

class Solution {

	public List> mergeSimilarItems(int[][] items1, int[][] items2) {
		TreeMap map = new TreeMap<>();
		for (int[] item : items1) {
			map.put(item[0], item[1]);
		}
		for (int[] item : items2) {
			map.put(item[0], map.getOrDefault(item[0], 0) + item[1]);
		}
		ArrayList> list = new ArrayList<>();
		for (Map.Entry entry : map.entrySet()) {
			list.add(List.of(entry.getKey(), entry.getValue()));
		}
		return list;
	}
}

我的提交:

map.remove()     map.getKey()    map.getValue()     map按照key升序排序     map的遍历

class Solution {
    public List> mergeSimilarItems(int[][] items1, int[][] items2) {
        Map map1 = new HashMap<>();
        Map map2 = new HashMap<>();

        int len1 = items1.length, len2 = items2.length;

        for (int i = 0; i < len1; i++) {
            map1.put(items1[i][0], items1[i][1]);
        }
        for (int i = 0; i < len2; i++) {
            map2.put(items2[i][0], items2[i][1]);
        }

        Map result = new HashMap<>();

        if (len1 >= len2) {
            result = getA(map1, map2);
        } else {
            result = getA(map2, map1);
        }

        List> list = new ArrayList<>();
        for (Map.Entry entry : result.entrySet()) {
            List a = new ArrayList<>();
            a.add(entry.getKey());
            a.add(entry.getValue());
            list.add(a);
        }
        return list;
    }
     public static Map getA(Map max, Map min){
            Map map = new HashMap<>();
            for (Map.Entry entry : max.entrySet()) {
                if (min.containsKey(entry.getKey())) {
                    int total = entry.getValue() + min.get(entry.getKey());
                    map.put(entry.getKey(), total);
                    min.remove(entry.getKey());
                } else {
                    map.put(entry.getKey(), entry.getValue());
                }
                if (!min.isEmpty()){
                    for (Map.Entry entry1 : min.entrySet()) {
                        map.put(entry1.getKey(),entry1.getValue());
                    }
                }
            }
// 根据key升序排序
           Map collect = map.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldVal, newVal) -> oldVal, LinkedHashMap::new));
            return collect;
     }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号