From 14d7de70073a253023f562d0b5af7854310bfc33 Mon Sep 17 00:00:00 2001 From: Gajay <6947656+GAjay@users.noreply.github.com> Date: Mon, 19 Oct 2026 01:30:33 +0000 Subject: [PATCH] feat(daily): implement 2026-10-19 merge-sorted-array --- automation/state.json | 4 ++-- .../2026-10-19-merge-sorted-array/README.md | 23 +++++++++++++++++++ .../merge-sorted-array.test.js | 13 +++++++++++ .../2026-10-19-merge-sorted-array/solution.js | 19 +++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 problems/2026-10-19-merge-sorted-array/README.md create mode 100644 problems/2026-10-19-merge-sorted-array/merge-sorted-array.test.js create mode 100644 problems/2026-10-19-merge-sorted-array/solution.js diff --git a/automation/state.json b/automation/state.json index 87ed61a..b33aa8d 100644 --- a/automation/state.json +++ b/automation/state.json @@ -1,4 +1,4 @@ { - "catalogIndex": 7, - "lastRunDate": "2026-10-18" + "catalogIndex": 8, + "lastRunDate": "2026-10-19" } diff --git a/problems/2026-10-19-merge-sorted-array/README.md b/problems/2026-10-19-merge-sorted-array/README.md new file mode 100644 index 0000000..f5bc518 --- /dev/null +++ b/problems/2026-10-19-merge-sorted-array/README.md @@ -0,0 +1,23 @@ +# Merge Sorted Array + +## Problem + +You are given two integer arrays `nums1` and `nums2`, sorted in **non-decreasing order**, and two integers `m` and `n`, the number of elements in `nums1` and `nums2` respectively. + +Merge `nums2` into `nums1` as one sorted array **in-place**. The first `m` elements of `nums1` are the mergeable values; the last `n` elements of `nums1` are `0` placeholders. The length of `nums1` is `m + n`. + +## Examples + +``` +Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 +Output: [1,2,2,3,5,6] +``` + +## Constraints + +- `nums1.length == m + n` +- `nums2.length == n` + +## Notes + +Implement `merge` in `solution.js`. diff --git a/problems/2026-10-19-merge-sorted-array/merge-sorted-array.test.js b/problems/2026-10-19-merge-sorted-array/merge-sorted-array.test.js new file mode 100644 index 0000000..9873a83 --- /dev/null +++ b/problems/2026-10-19-merge-sorted-array/merge-sorted-array.test.js @@ -0,0 +1,13 @@ +import { describe, it } from "node:test"; +import assert from "node:assert/strict"; +import { merge } from "./solution.js"; + +describe("merge", () => { + it("standard merge", () => { + const input = structuredClone([1,2,3,0,0,0]); + const args = [[1,2,3,0,0,0],3,[2,5,6],3]; + args[0] = input; + merge(...args); + assert.deepEqual(input, [1,2,2,3,5,6]); + }); +}); diff --git a/problems/2026-10-19-merge-sorted-array/solution.js b/problems/2026-10-19-merge-sorted-array/solution.js new file mode 100644 index 0000000..1797552 --- /dev/null +++ b/problems/2026-10-19-merge-sorted-array/solution.js @@ -0,0 +1,19 @@ +/** + * @param {number[]} nums1 + * @param {number} m + * @param {number[]} nums2 + * @param {number} n + * @returns {void} + */ +export function merge(nums1, m, nums2, n) { + let i = m - 1; + let j = n - 1; + let k = m + n - 1; + while (j >= 0) { + if (i >= 0 && nums1[i] > nums2[j]) { + nums1[k--] = nums1[i--]; + } else { + nums1[k--] = nums2[j--]; + } + } +}