合并 k 个已排序链表,并返回一个同样排好序的链表。分析并描述算法复杂度。 继续阅读
分类目录归档:LeetCode
21. Merge Two Sorted Lists 「合并两个有序链表」
合并两个有序链表,并将结果作为一个新的链表返回。应该通过将前两个列表的节点拼接在一起来创建新列表。 继续阅读
148. Sort List 「排序链表」
排序链表,要求时间复杂度 O(nlogn),空间复杂度为常数。 继续阅读
146. LRU Cache 「LRU 缓存机制」
设计并实现一个数据结构:最久使用缓存(LRU)。它应当支持 get
与 put
操作。 继续阅读
4. Median of Two Sorted Arrays 「寻找两个有序数组的中位数」
现有两个有序数组 nums1 和 nums2,大小分别为 m 和 n。求这两个数组的中位数。算法时间复杂度应为 O(log(m+n))。
你可以认为 nums1 和 nums2 不同时为空。 继续阅读
2. Add Two Numbers 「两数相加」
给定两个非空链表,分别代表着两个非负整数。整数的每一位数字以倒序保存在链表的每一个节点中。将这两个整数相加并将结果以相同形式的链表返回。 继续阅读
27. Remove Element 「移除元素」
203. Remove Linked List Elements 「移除链表元素」
移除整数链表中所有与 val 值相同的元素。 继续阅读
237. Delete Node in a Linked List 「删除链表中的节点」
编写一个函数以删除单链表中的节点(除了尾部节点),且只给出要删除的节点。 继续阅读
63. Unique Paths II 「不同路径 II」
一个机器人站立在 m×n 方格的左上角(下图中标记为“Start”的位置)。
这个机器人只能向右或向下移动。机器人正在试着移动到方格的右下角(下图中标记为“Finish”的位置)。
如果方格中有一些障碍物,那么共有多少条不同的路径可以移动? 继续阅读