2363. 合并相似的物品 (Easy)
问题描述
给你两个二维整数数组 items1
和 items2
,表示两个物品集合。每个数组 items
有以下特质:
items[i] = [valueᵢ, weightᵢ]
其中valueᵢ
表示第i
件物品的
价值 ,weightᵢ
表示第i
件物品的 重量 。items
中每件物品的价值都是 唯一的 。
请你返回一个二维数组 ret
,其中 ret[i] = [valueᵢ, weightᵢ]
, weightᵢ
是所有价值为 valueᵢ
物品的 重量之和 。
注意: ret
应该按价值 升序 排序后返回。
示例 1:
输入:items1 = [[1,1],[4,5],[3,8]], items2 = [[3,1],[1,5]]
输出:[[1,6],[3,9],[4,5]]
解释:
value = 1 的物品在 items1 中 weight = 1 ,在 items2 中 weight = 5
,总重量为 1 + 5 = 6 。
value = 3 的物品再 items1 中 weight = 8 ,在 items2 中 weight = 1
,总重量为 8 + 1 = 9 。
value = 4 的物品在 items1 中 weight = 5 ,总重量为 5 。
所以,我们返回 [[1,6],[3,9],[4,5]] 。
示例 2:
输入:items1 = [[1,1],[3,2],[2,3]], items2 =
[[2,1],[3,2],[1,3]]
输出:[[1,4],[2,4],[3,4]]
解释:
value = 1 的物品在 items1 中 weight = 1 ,在 items2 中 weight = 3
,总重量为 1 + 3 = 4 。
value = 2 的物品在 items1 中 weight = 3 ,在 items2 中 weight = 1
,总重量为 3 + 1 = 4 。
value = 3 的物品在 items1 中 weight = 2 ,在 items2 中 weight = 2
,总重量为 2 + 2 = 4 。
所以,我们返回 [[1,4],[2,4],[3,4]] 。
示例 3:
输入:items1 = [[1,3],[2,2]], items2 = [[7,1],[2,2],[1,4]]
输出:[[1,7],[2,4],[7,1]]
解释:
value = 1 的物品在 items1 中 weight = 3 ,在 items2 中 weight = 4
,总重量为 3 + 4 = 7 。
value = 2 的物品在 items1 中 weight = 2 ,在 items2 中 weight = 2
,总重量为 2 + 2 = 4 。
value = 7 的物品在 items2 中 weight = 1 ,总重量为 1 。
所以,我们返回 [[1,7],[2,4],[7,1]] 。
提示:
1 <= items1.length, items2.length <= 1000
items1[i].length == items2[i].length == 2
1 <= valueᵢ, weightᵢ <= 1000
items1
中每个valueᵢ
都是 唯一的 。items2
中每个valueᵢ
都是 唯一的 。
解题思路
哈希表+模拟
代码
class Solution {
public:
vector<vector<int>> mergeSimilarItems(vector<vector<int>> &items1, vector<vector<int>> &items2) {
unordered_map<int, int> ump;
for (auto &vec : items1) {
ump[vec[0]] += vec[1];
}
for (auto &vec : items2) {
ump[vec[0]] += vec[1];
}
vector<vector<int>> ret;
for (auto &pair : ump) {
ret.push_back({pair.first, pair.second});
}
std::sort(ret.begin(), ret.end());
return ret;
}
};
2363. 合并相似的物品 (Easy)的更多相关文章
- Java List集合排序
二维 List 自定义排序 使用lambda表达式 import java.util.*; public class Main { public static void main(String[] a ...
- Java遍历Map集合
Java遍历Map集合简单例子 import java.util.*; public class Main { public static void main(String[] args) { Has ...
- # HNOI2012 ~ HNOI2018 题解
HNOI2012 题解 [HNOI2012]永无乡 Tag:线段树合并.启发式合并 联通块合并问题. 属于\(easy\)题,直接线段树合并 或 启发式合并即可. [HNOI2012]排队 Tag:组 ...
- ZOJ 3264 Present for MM
寒假开始了···但是做题没有结束嘤··· 然后是dp专场嘤··· 题意:背包问题,给出背包容量和物品对数,每对物品都有特殊的关系:第一种关系是两个物品都取有价值,若只取一个则失去价值:第二种是两个物品 ...
- Luogu P1860 新魔法药水
题目大意 具体题面及输入格式戳我! 商店里有\(N\)种药水,每种药水都有一个售价和回收价. 小\(S\) 攒了\(V\)元钱,还会\(M\)种魔法,可以把一些药水合成另一种药水. 他在第一天可以购买 ...
- 【LuoguP1273有线电视网】树形依赖背包
参考论文http://wenku.baidu.com/view/8ab3daef5ef7ba0d4a733b25.html 参考一篇写的很好的博文http://www.cnblogs.com/GXZC ...
- WOJ 46 完全背包
高级的暴力,神仙优化…… 首先$O(n^{3})$的$dp$很好想,然后这样可以$O(1)$地回答询问. 考虑到所有物品的体积是一个连续的区间,所以说我们可以合并一些物品来达到预处理时间均摊的效果. ...
- BZOJ 3227: [Sdoi2008]红黑树(tree)
BZOJ 3227: [Sdoi2008]红黑树(tree) 标签(空格分隔): OI-BZOJ OI-其它 Time Limit: 10 Sec Memory Limit: 128 MB Descr ...
- 西安邀请赛-D(带权并查集+背包)
题目链接:https://nanti.jisuanke.com/t/39271 题意:给定n个物品,m组限制,每个物品有个伤害值,现在让两个人取完所有物品,要使得两个人取得物品伤害值之和最接近,输出伤 ...
- 【DP】区间DP入门
在开始之前我要感谢y总,是他精彩的讲解才让我对区间DP有较深的认识. 简介 一般是线性结构上的对区间进行求解最值,计数的动态规划.大致思路是枚举断点,然后对断点两边求取最优解,然后进行合并从而得解. ...
随机推荐
- CF生化全模式全装备单机版安装教程(基于CSOL)
喜欢玩CF单机版的朋友平时应该接触过一些基于CS1.6的单机版,但是这种版本有些特性就是:改了分辨率就容易进不去游戏:变为幽灵时被枪射击时会出现视角乱晃的情况:游戏过程中场景宏大变数多时容易突然退出回 ...
- CodeGym自学笔记05——类名
1.Java 程序由类组成.每个类都存储在一个单独的文件中,其文件名称与类名一致.该文件的扩展名为 java. 2.当我们有许多类文件时,我们会将它们分组到文件夹和子文件夹中.此外,类还会被分组到包和 ...
- 2022-05-12内部群每日三题-清辉PMP
1.项目团队成员将因积极工作和满足项目成本目标而获得奖励.高级经理向项目经理询问团队成员的可用性和旅行偏好,项目经理可以在哪里获得奖励的定义标准和频率? A.责任分配矩阵(RAM) B.项目管理计划 ...
- 查看git的用户名和密码
转载自:https://www.cnblogs.com/xihailong/p/13354628.html 一.查看查看用户名 :git config user.name查看密码: git confi ...
- 【MySQL】MySQL时区问题、数据库时间相差8小时问题解决
解决:修改MySQL系统时区,改为东8区. 在命令行界面或者可视化工具下(如:Navicat)依次运行以下命令. 1.查询当前系统时间 select now(); 2.检查MySQL系统时区 show ...
- Sql Sugar 使用
sql sugar orm文档地址: SqlSugar ORM 5.X 官网 .文档.教程 - SqlSugar 5x - .NET果糖网 (donet5.com) sql sugar 基本用法大全, ...
- 简单的自动清理TIM/QQ聊天垃圾文件方案
我平时喜欢在后台挂着Tim,时间一长,我发现数据文件夹会越来越大,即使我没有看过这些消息(多为群聊消息),为了不再惦记清理垃圾文件,我整理了以下方案,可以每天清理一次7天前的文件. 1. 在磁盘任意位 ...
- NGAC下一代访问控制
NGAC,即下一代访问控制,采用将访问决定数据建模为图形的方法.NGAC 可以实现系统化.策略一致的访问控制方法,以高精细度授予或拒绝用户管理能力. 在这张图中,我们可以看到 /hr-docs 文件夹 ...
- flutter Stack 绝对布局的使用
使用stack 和Positioned 实现绝对布局 进行位置偏移 Container( alignment: Alignment.center, width: double.infinity, ch ...
- hive在执行简单的insert命令也会卡在kill command
终于解决了 我的配置有点问题,但在每次进入hive后,执行一遍 set hive.exec.mode.local.auto=true; 就可以用了 终于,困扰我三四天的问题解决了