LeetCode 2363. 合并相似的物品缩略图

给你两个二维整数数组 items1 和 items2 ,表示两个物品集合。每个数组 items 有以下特质:

  • items[i] = [valuei, weighti] 其中 valuei 表示第 i 件物品的 价值 ,weighti 表示第 i 件物品的 重量 。
  • items 中每件物品的价值都是 唯一的 。

请你返回一个二维数组 ret,其中 ret[i] = [valuei, weighti], weighti 是所有价值为 valuei 物品的 重量之和 。

注意:ret 应该按价值 升序 排序后返回。

2363. 合并相似的物品 – 力扣(Leetcode)

LeetCode 2363. 合并相似的物品插图
OpenCV步步精深-可心科创工作室
LeetCode 2363. 合并相似的物品插图1
OpenCV步步精深-可心科创工作室

思路:

哈希表,排序,重新添加到列表中。

python3实现:

class Solution:
    def mergeSimilarItems(self, items1: List[List[int]], items2: List[List[int]]) -> List[List[int]]:
        all_items = items1 + items2
        dic = {}
        for idx in range(len(all_items)):
            each = all_items[idx]
            v = each[0]
            w = each[1]
            if v in dic:
                dic[v] += w
            else:
                dic[v] = w
        idx = list(dic.keys())
        idx.sort()
        result = []
        for elem in idx:
            result.append([elem, dic[elem]])
        return result
LeetCode 2363. 合并相似的物品插图2
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注