Merge Sorted Arrays
Problem statement
You get two ascending arrays, nums1 and nums2, with lengths m and n. Merge them into one sorted sequence. Keep the result inside nums1 (it already has room for m + n values).
Example:
Input:
nums1 = [1, 2, 3, 0, 0, 0], m = 3
nums2 = [2, 5, 6], n = 3
Expected output:
nums1 = [1, 2, 2, 3, 5, 6]
Practice on LeetCode: Merge Sorted Array
Golang Solution
func merge(nums1 []int, m int, nums2 []int, n int) {
result := make([]int, m+n)
i, j, k := 0, 0, 0
for i < m && j < n {
if nums1[i] < nums2[j] {
result[k] = nums1[i]
i += 1
} else {
result[k] = nums2[j]
j += 1
}
k += 1
}
for i < m {
result[k] = nums1[i]
i += 1
k += 1
}
for j < n {
result[k] = nums2[j]
j += 1
k += 1
}
for i = 0; i < m+n; i++ {
nums1[i] = result[i]
}
}
