![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表与数组
文章平均质量分 60
SeeDoubleU
这个作者很懒,什么都没留下…
展开
-
57 最接近零的子数组和(Subarray Sum Closest)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:最接近零的子数组和(Subarray Sum Closest)描述:给定一个整数数组,找到一个和最接近于零的子数组。返回满足要求的子数组的起始位置和结束位置。lintcode题号——139,难度——medium样例1:输入: [-3,1,1,-3,5] 输出: [0,2]解释: [0,2], [1,3], [1,1], [2,2], [0,4]2 解决方案2.1 思路 使用暴力法遍原创 2022-05-04 21:13:03 · 199 阅读 · 0 评论 -
56 子数组之和(Subarray Sum)
文章目录1 题目2 解决方案2.1 思路2.2 图解2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:子数组之和(Subarray Sum)描述:给定一个整数数组,找到和为 0 的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置,至少有一个子数组的和为 0。lintcode题号——138,难度——easy样例1:输入: [-3, 1, 2, -3, 4]输出: [0,2] 或 [1,3] 样例解释: 返回任意一段和为0的区间即可。样例2:输入: [-3, 1,原创 2022-05-04 21:09:15 · 406 阅读 · 0 评论 -
55 最大子数组(Maximum Subarray)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码4 另解——贪心算法1 题目题目:最大子数组(Maximum Subarray)描述:**给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。每个子数组的数字在数组中的位置应该是连续的。子数组最少包含一个数 **lintcode题号——41,难度——easy样例1:输入:nums = [−2,2,−3,4,−1,2,1,−5,3]输出:6解释:符合要求的子数组为[4,−1,2,1],其最大和为 6原创 2022-05-04 21:08:12 · 385 阅读 · 0 评论 -
54 两个排序数组的中位数(Median of two Sorted Arrays)
文章目录1 题目2 解决方案2.1 思路2.2 图解2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两个排序数组的中位数(Median of two Sorted Arrays)描述:两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。中位数的定义:这里的中位数等同于数学定义里的中位数。中位数是排序后数组的中间值。如果有数组中有n个数且n是奇数,则中位数为A[(n - 1) / 2]A[(n−1)/2]。如果有数组中有n个原创 2022-05-04 21:06:16 · 241 阅读 · 0 评论 -
53 两数组的交集(Intersection of Two Arrays)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码3.1 排序+合并的方式3.2 二分搜索的方式3.3 哈希表的方式1 题目题目:两数组的交集(Intersection of Two Arrays)描述:给出两个数组,写出一个方法求出它们的交集。结果中的每个元素必须是唯一的。lintcode题号——547,难度——easy样例1:输入: nums1 = [1, 2, 2, 1], nums2 = [2, 2], 输出: [2].样例2:输入:原创 2022-05-04 21:05:00 · 249 阅读 · 0 评论 -
52 将有序数组并入另一个有序数组(Merge Sorted Arrays)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:将有序数组并入另一个有序数组(Merge Sorted Arrays)描述:将按升序排序的整数数组A和B合并,新数组也需有序。假设被并入的数组会有足够空间容纳另一个数组。lintcode题号——暂无,难度——easy样例1:输入:A = [1,2,3,null,null]B = [4,5]输出:A = [1,2,3,4,5]解释:返回合并后的数组。样例2:输入:A = [1原创 2022-05-04 20:59:05 · 284 阅读 · 0 评论 -
51 合并排序数组(Merge Two Sorted Arrays)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:合并排序数组(Merge Two Sorted Arrays)描述:将按升序排序的整数数组A和B合并,新数组也需有序。lintcode题号——6,难度——easy样例1:输入:A = [1]B = [1]输出:[1,1]解释:返回合并后的数组。样例2:输入:A = [1,2,3,4]B = [2,4,5,6]输出:[1,2,2,3,4,4,5,6]2 解决方案2.1原创 2022-04-28 23:08:10 · 260 阅读 · 0 评论 -
50 链表排序(Sort List)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.4 空间复杂度3 源码1 题目题目:链表排序(Sort List)描述:在 O(nlogn) 时间复杂度和常数级的空间复杂度下给链表排序。lintcode题号——98,难度——medium样例1:输入:list = 1->3->2->null输出:1->2->3->null解释:给链表排序.样例2:输入:list = 1->7->2->6->null输出:1-原创 2022-04-28 23:03:43 · 1735 阅读 · 0 评论 -
49 合并两个排序链表(Merge Two Sorted Lists)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3空间复杂度3 源码1 题目题目:合并两个排序链表(Merge Two Sorted Lists)描述:将两个排序(升序)链表合并为一个新的升序排序链表。lintcode题号——165,难度——easy样例1:输入: list1 = null, list2 = 0->3->3->null输出: 0->3->3->null样例2:输入: list1 = 1->3->8-&g原创 2022-04-28 22:53:57 · 781 阅读 · 0 评论 -
48 两个链表的交叉(Intersection of Two Linked Lists)
文章目录1 题目2 解决方案2.1 思路2.2 图解2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两个链表的交叉(Intersection of Two Linked Lists)描述:请写一个程序,找到两个单链表最开始的交叉节点。如果两个链表没有交叉,返回null。在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。lintcode题号——380,难度——medium样例1:输入: A: a1 → a2原创 2022-04-28 22:51:57 · 349 阅读 · 0 评论 -
47 带环链表II(Linked List Cycle II)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:带环链表II(Linked List Cycle II)描述:给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。lintcode题号——103,难度——hard样例1:输入:null,no cycle输出:no cycle解释:链表为空,所以没有环存在。样例2:输入:-21->10->4->5,tail connects to no原创 2022-04-28 22:49:29 · 716 阅读 · 0 评论 -
46 带环链表(Linked List Cycle)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:带环链表(Linked List Cycle)描述:给定一个链表,判断它是否有环。链表长度不超过10000lintcode题号——102,难度——medium样例1:输入:linked list = 21->10->4->5,then tail connects to node index 1(value 10).输出:true解释:链表有环。样例2:输入:li原创 2022-04-28 22:47:14 · 427 阅读 · 0 评论 -
45 克隆带随机指针的链表(Copy List with Random Pointer)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:克隆带随机指针的链表(Copy List with Random Pointer)描述:给出一个链表,每个节点包含一个额外增加的随机指针,其可以指向链表中的任何节点或空的节点。返回其链表的深度拷贝。lintcode题号——105,难度——medium2 解决方案2.1 思路 对链表的深拷贝,可以参考对图的克隆操作,先找到点、克隆点,再建立旧节点到新节点的映射,最后再克隆点的其余附属物品,本题原创 2022-04-28 22:45:38 · 164 阅读 · 0 评论 -
44 K组翻转链表(Reverse Nodes in k-Group)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:K组翻转链表(Reverse Nodes in k-Group)描述:给定一个链表,一次反转链表 k 的节点并返回其修改后的列表。如果节点的数量不是k的倍数,那么最后遗漏的节点应该保持原样。不能更改节点中的值,只能更改节点本身。只允许使用常量内存。lintcode题号——450,难度——hard样例1:输入:list = 1->2->3->4->5->nullk原创 2022-04-28 22:44:57 · 291 阅读 · 0 评论 -
43 翻转链表II(Reverse Linked List II)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:翻转链表II(Reverse Linked List II)描述:翻转链表中第 m 个节点到第 n 个节点的部分。m,n满足1 ≤ m ≤ n ≤ 链表长度lintcode题号——36,难度——medium样例1:输入:链表 = 1->2->3->4->5->NULLm = 2 n = 4输出:1->4->3->2->5->NUL原创 2022-04-28 22:42:55 · 163 阅读 · 0 评论 -
42 翻转链表(Reverse Linked List)
文章目录1 题目2 解决方案2.1 思路2.2 图解2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:翻转链表(Reverse Linked List)描述:翻转一个链表。lintcode题号——35,难度——easy样例1:输入:链表 = 1->2->3->null输出:3->2->1->null解释:翻转链表样例2:输入:链表 = 1->2->3->4->null输出:4->3->2->1-原创 2022-04-28 22:41:15 · 297 阅读 · 0 评论