## 88. Merge Sorted Array

Given two sorted integer arrays `nums1` and `nums2`, merge `nums2` into `nums1` as one sorted array.

The number of elements initialized in `nums1` and `nums2` are `m` and `n` respectively. You may assume that `nums1` has a size equal to `m + n` such that it has enough space to hold additional elements from `nums2`.

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]
```

Example 2:

```Input: nums1 = [1], m = 1, nums2 = [], n = 0
Output: [1]
```

Constraints:

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

## Rust Solution

``````struct Solution;

impl Solution {
fn merge(nums1: &mut Vec<i32>, m: i32, nums2: &mut Vec<i32>, n: i32) {
nums1.truncate(m as usize);
nums2.truncate(n as usize);
nums1.append(nums2);
nums1.sort_unstable();
}
}

#[test]
fn test() {
let mut nums1 = vec![1, 2, 3, 0, 0, 0];
let mut nums2 = vec![2, 5, 6];
let m = 3;
let n = 3;
Solution::merge(&mut nums1, m, &mut nums2, n);
assert_eq!(nums1, vec![1, 2, 2, 3, 5, 6]);
}
``````

Having problems with this solution? Click here to submit an issue on github.