88.合并两个有序数组 (=归并
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素
法1.直接加入nums1,接着对nums1排序。复杂度消耗在排序上,若用快排
时间:O( m+nlog(m+n) )
空间:O( log(m+n) ) //消耗递归栈空间
法2.双指针从前往后,依次将小的数加入新数组,最后将新数组全部复制进nums1
时间:O(m+n)
空间:O(n)
法3.双指针从后往前
时间:O(m+n)
空间:O(1)
21.合并两个有序链表
双指针O(m+n)
23.合并k个排序链表
踩坑:
1.
head := &ListNode{}
head不等于nil :
&{0 <nil>}
2.
wrong ,nil不能被赋值
b := nil
right:
var q *ListNode = nil
法1:类似合并两个有序链表
法2:小顶堆
合并重复区间
合并二叉树