Tags: #1TimePass
SourceTag (e.g. leetcode): #leetcode
Card Link: [[Array]]
---
#### Solution 1
```go
func merge(nums1 []int, m int, nums2 []int, n int) {
newArr := make([]int, m)
for i, v := range nums1[:m]{
newArr[i] = v
}
ptr1 := 0
ptr2 := 0
for ptr1 < m && ptr2 < n {
if newArr[ptr1] <= nums2[ptr2]{
nums1[ptr1+ptr2] = newArr[ptr1]
ptr1 ++
}else{
nums1[ptr1+ptr2] = nums2[ptr2]
ptr2++
}
}
totalPtr := ptr1 + ptr2
if ptr1 != m {
for _, v := range newArr[ptr1:m]{
nums1[totalPtr] = v
totalPtr ++
}
}else {
for _, v := range nums2[ptr2:n] {
nums1[totalPtr] = v
totalPtr ++
}
}
}
```
#### Description:
The better version is comes from backwards, then we could reduce it to zero extra space.
Time Complexity: O(n+m)
Space Complexity: O(m)
#### Solution 2
```go
```
#### Description:
Time Complexity:
Space Complexity: