123456789101112131415161718192021222324252627282930313233343536 |
- package main
- import (
- "fmt"
- )
- func merge(nums1 []int, m int, nums2 []int, n int) {
- nums := make([]int, 0)
- i, j := 0, 0
- // pit: add the smaller one "once a time"
- for i < m && j < n {
- if nums1[i] < nums2[j] {
- nums = append(nums, nums1[i])
- i++
- } else {
- nums = append(nums, nums2[j])
- j++
- }
- }
- if i == m && j == n {
- } else if i == m {
- nums = append(nums, nums2[j:]...)
- } else {
- nums = append(nums, nums1[i:]...)
- }
- for i = 0; i < m+n; i++ {
- nums1[i] = nums[i]
- }
- }
- func test88() {
- n1 := []int{1, 1, 2, 9, 0, 0, 0}
- n2 := []int{2, 3, 3}
- merge(n1, 4, n2, 3)
- fmt.Println(n1)
- }
|