From c9ba7235be8db5d4bb0a9b9c5b56083626696477 Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Sun, 2 Mar 2025 10:17:01 +0530 Subject: [PATCH] Create 2570-merge-two-2d-arrays-by-summing-values.js Solved merge-two-2d-arrays-by-summing-values --- ...0-merge-two-2d-arrays-by-summing-values.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 javascript/2570-merge-two-2d-arrays-by-summing-values.js diff --git a/javascript/2570-merge-two-2d-arrays-by-summing-values.js b/javascript/2570-merge-two-2d-arrays-by-summing-values.js new file mode 100644 index 000000000..f5200b4d3 --- /dev/null +++ b/javascript/2570-merge-two-2d-arrays-by-summing-values.js @@ -0,0 +1,35 @@ +/** + * Array | Simulation | Sorting + * Time O(n*log(n)) | Space O(n) + * https://leetcode.com/problems/merge-two-2d-arrays-by-summing-values + * @param {number[][]} nums1 + * @param {number[][]} nums2 + * @return {number[][]} + */ +var mergeArrays = function(nums1, nums2) { + + const idToVal2 = {}; + const result = []; + const taken = new Set(); + + for (let i = 0; i < nums2.length; i++) { + const [id, val] = nums2[i]; + idToVal2[id] = val; + } + + for (let i = 0; i < nums1.length; i++) { + const [id, val] = nums1[i]; + result.push([id, (idToVal2[id] || 0) + val]); + taken.add(id); + } + + for (let i = 0; i < nums2.length; i++) { + const [id, val] = nums2[i]; + if (!taken.has(id)) { + result.push([id, val]); + } + taken.add(id); + } + + return result.sort((a,b) => a[0] - b[0]); +};