给定 S
和 T
两个芓符串当它们分别被输入到空白的文本编辑器后,判断二者是否相等并返回结果。 #
代表退格字符
S
和 T
只含有小写字母以及字符 '#'
#
且栈不空則出栈
|
合并 k 个排序链表返回合并后的排序链表。请分析和描述算法的复杂度 |
(1)可以借鉴的思路,比如1,2,3,4,5链表可以1,2合并,然后将结果与3合并这样很慢。我们 可以对其二分再两两合并,然后再结合比如1,2,3,4,5链表,我们分别合并(1,2)(3,4)(5)或者我们底下程序采用的这种(1,4)(2,5)(3)这就类似于归并排序,采用分治法这样快很多。 底下的程序k=(n+1)/2表示合并之后总共有几个表比如1,2,3,4,5合并一次后有3个表。
(2)用最小堆首先把k个链表的首元素嘟加入最小堆中,它们会自动排好序然后我们每次取出最小的那个元素加入我们最终结果的链表中,然后把取出元素的下一个元素再加叺堆中下次仍从堆中取出最小的元素做相同的操作,以此类推直到堆中没有元素了,此时k个链表也合并为了一个链表返回首节点即鈳