【Java|golang】2363. 合并相似的物品---桶排序
创始人
2024-05-27 09:48:32

给你两个二维整数数组 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 都是 唯一的 。

    public List> mergeSimilarItems(int[][] items1, int[][] items2) {List> res=new ArrayList<>();int[] ints = new int[1001];for (int[] item : items1) {ints[item[0]]+=item[1];}for (int[] item : items2) {ints[item[0]]+=item[1];}for (int i = 0; i < ints.length; i++) {if (ints[i]!=0){List t=new ArrayList<>();t.add(i);t.add(ints[i]);res.add(t);}}return res;}

在这里插入图片描述

func mergeSimilarItems(items1 [][]int, items2 [][]int) [][]int {res:=make([][]int,0)ints:= [1001]int{}for _, v := range items1 {ints[v[0]]+=v[1]}for _, v := range items2 {ints[v[0]]+=v[1]}for i := 0; i < len(ints); i++ {if ints[i]!=0{t:=make([]int,0)t = append(t,i,ints[i])res = append(res,t)}}return res;
}

在这里插入图片描述

相关内容

热门资讯

中华人民共和国国务院令(第83... 中华人民共和国国务院令第836号《中华人民共和国行政复议法实施条例》已经2026年4月17日国务院第...
航新科技易主后董事会“换血”:... 5月8日,航新科技(300424)发布公告,鉴于公司控股股东、实际控制人已发生变更,公司拟对第六届董...
安徽新建5万吨锂电池回收项目 (来源:电池工业网)本网讯  5月6日,淮南市生态环境局发布《关于安徽新众诺能源发展有限公司新能源锂...
圣邦股份“A+H”信披打架,董...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 2026年4月,创业...
受贿1.89亿余元,重庆市委原... 2026年5月8日,四川省泸州市中级人民法院一审公开宣判重庆市委原常委、政法委原书记陆克华受贿案,对...