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

在这里插入图片描述

相关内容

热门资讯

北京符合条件的用人单位可开展职... (来源:千龙网)北京市人力资源和社会保障局近日发布《北京市职称自主评审管理办法(试行)》,稳妥有序向...
云南德宏州盈江县发生3.9级地... 来源:中国地震台网微信公众号 速报参数速报参数:据中国地震台网正式测定,12月25日23时19分在云...
天津歌舞剧院演绎多元艺术 (来源:天津日报)转自:天津日报  本报讯(记者 王洋 摄影 姚文生)近日,天津歌舞剧院推出一系列高...
数字引擎赋能法律监督 和平区检... (来源:天津日报)转自:天津日报  天津市和平区人民检察院自主研发的法律监督模型取得丰厚成果。该院党...
经济日报:为未成年人营造良好成... 格隆汇12月26日|经济日报文章称,未成年人的健康成长离不开优秀文化的滋养,要积极营造良好社会文化环...