22.go 629 B

1234567891011121314151617181920212223242526272829303132
  1. package main
  2. import (
  3. "strings"
  4. "fmt"
  5. "math"
  6. )
  7. func merge(nums1 []int, m int, nums2 []int, n int) {
  8. nums := make([]int, 0)
  9. i, j := 0, 0
  10. // pit: add the smaller one "once a time"
  11. for i < m && j < n {
  12. if nums1[i] < nums2[j] {
  13. nums = append(nums, nums1[i])
  14. i++
  15. } else {
  16. nums = append(nums, nums2[j])
  17. j++
  18. }
  19. }
  20. if i == m && j == n {
  21. } else if i == m {
  22. nums = append(nums, nums2[j:]...)
  23. } else {
  24. nums = append(nums, nums1[i:]...)
  25. }
  26. for i = 0; i < m + n; i++ {
  27. nums1[i] = nums[i]
  28. }
  29. }