題目連結: https://leetcode.com/problems/merge-sorted-array/
Time complexity: O(m+n)
// Test case:
// nums1: [], nums2: []
// nums1: [], nums2: [1]
// nums1: [1], nums2: []
// nums1: [1,2], nums2: [4,6]
// nums1: [4,6], nums2: [1,2]
// nums1: [1,2,3], nums2: [1,4]
func merge(_ nums1: inout [Int], _ m: Int, _ nums2: [Int], _ n: Int) {
var i = m - 1
var j = n - 1
var k = m + n - 1
while i >= 0 && j >= 0 {
if nums2[j] > nums1[i] {
nums1[k] = nums2[j]
j -= 1
k -= 1
} else {
nums1[k] = nums1[i]
i -= 1
k -= 1
}
}
while j >= 0 {
nums1[k] = nums2[j]
j -= 1
k -= 1
}
}