力扣链接:
https://leetcode-cn.com/probl...
解题思路:

  1. 第一种最天然的解法:将两个数组合并而后从新排序,这个解法最容易想到也最简略,运行的工夫复杂度也较高
  2. 队列法:能够将两个数组看做两个队列,依照从小到大的形式入一个新的队列,那么就须要两个指针,别离指向两个队列的队首开始遍历
func merge(nums1 []int, m int, nums2 []int, n int) {    sorted := make([]int, 0, m+n)    p1, p2 := 0, 0    for {        if p1 == m {            sorted = append(sorted, nums2[p2:]...)            break        }        if p2 == n {            sorted = append(sorted, nums1[p1:]...)            break        }        if nums1[p1] < nums2[p2] {            sorted = append(sorted, nums1[p1])            p1++        } else {            sorted = append(sorted, nums2[p2])            p2++        }    }    copy(nums1, sorted)}