Skip to content

Commit c81c6f8

Browse files
authored
Merge pull request doocs#233 from ElectricBubble/master
Add Solution.go for 0088.Merge Sorted Array
2 parents e8f51ed + b54ce2c commit c81c6f8

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

Diff for: solution/0088.Merge Sorted Array/Solution.go

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
func merge(nums1 []int, m int, nums2 []int, n int) {
2+
ret := make([]int, m+n)
3+
copy(ret, nums1[:m])
4+
p0, p1, p2 := 0, 0, 0
5+
for ; p1 < m && p2 < n; p0++ {
6+
if nums1[p1] >= nums2[p2] {
7+
ret[p0] = nums2[p2]
8+
p2++
9+
} else if nums1[p1] < nums2[p2] {
10+
ret[p0] = nums1[p1]
11+
p1++
12+
}
13+
}
14+
if p1 < m {
15+
copy(nums1, append(ret[:p0], nums1[p1:m]...))
16+
}
17+
if p2 < n {
18+
copy(nums1, append(ret[:p0], nums2[p2:]...))
19+
}
20+
}

Diff for: solution/0088.Merge Sorted Array/Solution2.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
func merge(nums1 []int, m int, nums2 []int, n int) {
2+
right, p1, p2 := m+n-1, m-1, n-1
3+
for p1 >= 0 && p2 >= 0 {
4+
if nums1[p1] < nums2[p2] {
5+
nums1[right] = nums2[p2]
6+
p2--
7+
right--
8+
} else if nums1[p1] >= nums2[p2] {
9+
nums1[right] = nums1[p1]
10+
p1--
11+
right--
12+
}
13+
}
14+
// copy(nums1, append(nums2[:p2+1], nums1[p2+1:]...))
15+
for i := 0; i <= p2; i++ {
16+
nums1[i] = nums2[i]
17+
}
18+
}

0 commit comments

Comments
 (0)