【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;
}

在这里插入图片描述

相关内容

热门资讯

塑强发展优势 提升发展质量   新年伊始,万象更新;奋进号角,激荡人心。  回望2025年,面对采掘生产、盘区接续、灾害治理等多...
新区税务局创新服务解群众急难愁...   本报讯 (记者 李由)近年来,新区税务局坚持人民至上理念,将以人民为中心的发展思想融入税费征管和...
铺就乡村振兴新图景   □ 小 丁  中国式现代化离不开农业农村现代化,农业农村现代化关系中国式现代化全局和成色,是推进...
雪榕生物拟推2026年限制性股... 中访网数据  上海雪榕生物科技股份有限公司于2026年2月9日召开第六届董事会第四次会议,审议通过了...
当“马兰花儿”在米兰绽放   8日,米兰大运河畔的国际体育电影电视联合会总部内,奥林匹克会歌再次响起。清澈的歌声来自马兰花儿童...