304 North Cardinal St.
Dorchester Center, MA 02124

# Merge Sorted Array LeetCode Solution

## Problem – Merge Sorted Array LeetCode Solution

You are given two integer arrays `nums1` and `nums2`, sorted in non-decreasing order, and two integers `m` and `n`, representing the number of elements in `nums1` and `nums2` respectively.

Merge `nums1` and `nums2` into a single array sorted in non-decreasing order.

The final sorted array should not be returned by the function, but instead be stored inside the array `nums1`. To accommodate this, `nums1` has a length of `m + n`, where the first `m` elements denote the elements that should be merged, and the last `n` elements are set to `0` and should be ignored. `nums2` has a length of `n`.

Example 1:

``````Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
Explanation: The arrays we are merging are [1,2,3] and [2,5,6].
The result of the merge is [1,2,2,3,5,6] with the underlined elements coming from nums1.``````

Example 2:

``````Input: nums1 = , m = 1, nums2 = [], n = 0
Output: 
Explanation: The arrays we are merging are  and [].
The result of the merge is .
``````

Example 3:

``````Input: nums1 = , m = 0, nums2 = , n = 1
Output: 
Explanation: The arrays we are merging are [] and .
The result of the merge is .
Note that because m = 0, there are no elements in nums1. The 0 is only there to ensure the merge result can fit in nums1.``````

Constraints:

• `nums1.length == m + n`
• `nums2.length == n`
• `0 <= m, n <= 200`
• `1 <= m + n <= 200`
• `-109 <= nums1[i], nums2[j] <= 109`

### Merge Sorted Array LeetCode Solution in Python

``````def merge(self, nums1, m, nums2, n):
while m > 0 and n > 0:
if nums1[m-1] >= nums2[n-1]:
nums1[m+n-1] = nums1[m-1]
m -= 1
else:
nums1[m+n-1] = nums2[n-1]
n -= 1
if n > 0:
nums1[:n] = nums2[:n]
``````

### Merge Sorted Array LeetCode Solution in Java

``````public void merge(int[] nums1, int m, int[] nums2, int n) {
int tail1 = m - 1, tail2 = n - 1, finished = m + n - 1;
while (tail1 >= 0 && tail2 >= 0) {
nums1[finished--] = (nums1[tail1] > nums2[tail2]) ?
nums1[tail1--] : nums2[tail2--];
}

while (tail2 >= 0) { //only need to combine with remaining nums2, if any
nums1[finished--] = nums2[tail2--];
}
}
``````

### Merge Sorted Array LeetCode Solution in C++

``````class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int i = m - 1, j = n - 1, tar = m + n - 1;
while (j >= 0) {
nums1[tar--] = i >= 0 && nums1[i] > nums2[j] ? nums1[i--] : nums2[j--];
}
}
};
``````
##### Merge Sorted Array LeetCode Solution Review:

In our experience, we suggest you solve this Merge Sorted Array LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Merge Sorted Array LeetCode Solution

Find on LeetCode

##### Conclusion:

I hope this Merge Sorted Array LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.

Keep Learning!

More Coding Solutions >>

LeetCode Solutions

Hacker Rank Solutions

CodeChef Solutions