当前位置: 首页 > news >正文

宝安的医院网站建设色盲悖论

宝安的医院网站建设,色盲悖论,独立站搭建公司,长沙有什么好玩的室内2363. 合并相似的物品 题目描述 给你两个二维整数数组 items1 和 items2 ,表示两个物品集合。每个数组 items 有以下特质: items[i] [valuei, weighti] 其中 valuei 表示第 i 件物品的 价值 ,weighti 表示第 i 件物品的 重量 。items 中每…

2363. 合并相似的物品

题目描述

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

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

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

注意: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 <= valuei, weighti <= 1000
  • items1 中每个 valuei 都是 唯一的 。
  • items2 中每个 valuei 都是 唯一的 。

算法一:map 和 vector 的转化

思路

  • 首先将 items1 里的 value 和 weight 转换为 map 对应的 键值对,由于 map 会默认对 key 升序排序,因此此时的顺序已经满足了题目的要求。
  • 接着遍历 items2 ,将 items2 中对应的物品也加入到 map 中。
  • 此时 map 里存储的键值对就是答案,但是这道题要求我们返回二维 vector ,因此还需要将 map 转化为 二维 vector。

收获

  • 一开始想要哈希表,但是如果用下标存储 value ,太浪费空间了;如果是使用二维数组作为哈希表,遍历 items2 的时候又难以获得 value ,最后看了提示,可以用 map 。
  • map 访问对象 , key - map.first , value - map.second;
  • 如何将 map 转化为 二维 vector :这个我想了很久,后来发现可以创建一维 vector,将 map.first 和 map.second 放入,再将一维数组 push_back 到二维数组 ans 中,得到最终答案。

算法情况

  • 时间复杂度:O(n + m), 其中 n 和 m 分别为 items1 和 items2 的长度;

  • 空间复杂度:O(n + m), 其中 n 和 m 分别为 items1 和 items2 的长度。

    在这里插入图片描述

代码

class Solution {
public:vector<vector<int>> mergeSimilarItems(vector<vector<int>>& items1, vector<vector<int>>& items2) {// map默认对key升序排序map<int, int> mp;// 转化为mapfor(auto t : items1){mp[t[0]] = t[1];}for(auto t2: items2){mp[t2[0]] += t2[1];}vector<vector<int>> ans;// map 转化为 vector<vector<int>>for(auto s : mp){vector<int> temp = {s.first, s.second};ans.push_back(temp);}return ans;}
};
http://www.tj-hxxt.cn/news/129020.html

相关文章:

  • 网站页面背景app推广联盟平台
  • 深圳外网站建设关键词在线试听
  • 自己做店铺网站河南网站seo
  • 桂林疫情最新政策山西搜索引擎优化
  • 网站特效模板下载免费发布友链
  • 免费做网站方案技能培训网
  • 软件专业seo sem
  • 长春建设信息网站网络营销软件站
  • 深圳外贸网站开发建设关键词排名优化怎么做
  • 学习资料黄页网站免费杭州seo排名优化外包
  • 手机怎么做网站免费的网站建设公司大全
  • 免费企业建站模板制作网站的工具
  • 织梦dedecms官网搜狗整站优化
  • dedecms精仿学校网站模板百度优化排名软件
  • 学网站开发的软件有哪些强强seo博客
  • 绵阳网站建设价格app如何推广以及推广渠道
  • 广州网站制作系统2023年免费b站推广大全
  • 沈阳网站制作全过程网站在线优化检测
  • 曲阜市网站建设seo诊断书案例
  • 怎么设计一个网站广州网站优化公司排名
  • 设计交流的网站全国各大新闻网站投稿
  • 动态网站制作视频教程电脑培训学校能学什么
  • 惠州行业网站设计方案郑州seo技术顾问
  • 电子商务网站开发实务石道元恢复原来的百度
  • 免费的logo网站排名函数rank怎么用
  • 公积金网站建设模板百度app下载链接
  • 论坛做视频网站百度怎么发布自己的信息
  • 建应用网站百度官网电话
  • 那种漂亮的网站怎么做企业网络搭建
  • 滁州建设网站优秀网站