Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
The number of elements initialized in nums1 and nums2 are m and n respectively.
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
Example:
Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
// Approach used to copy the list
func merge(nums1 []int, m int, nums2 []int, n int) {
var j int = 0
if n == 0 {
return
}
for i, val := range nums1 {
if(j < len(nums2)) {
if nums2[j] >= val {
continue
} else {
extra := make([]int, len(nums1)-i-1)
copy(extra, nums1[i:len(nums1)-1])
nums1 = append(nums1[0:i], nums2[j])
nums1 = append(nums1, extra...)
j++;
}
}
}
var cur int = len(nums1)
for i:=len(nums2)-1;i>=j;i-- {
nums1[cur-1] = nums2[i]
cur--
}
}