Merged sorted array
You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of valid elements in nums1 and nums2. nums1 has a length of m + n, where the last n positions are reserved and empty (0 or placeholder) so you can merge nums2 inside nums1. Merge nums2 into nums1 as one single sorted array. The final result must be stored inside nums1 (in-place).
Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
Output:
nums1 = [1,2,2,3,5,6]
function merge(nums1, m, nums2, n) {
let i = m - 1; // last valid of nums1
let j = n - 1; // last of nums2
let k = m + n - 1; // end of nums1 final array
while (j >= 0) {
if (i >= 0 && nums1[i] > nums2[j]) {
nums1[k] = nums1[i];
i--;
} else {
nums1[k] = nums2[j];
j--;
}
k--;
}
}