摘要: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到 阅读全文
posted @ 2019-07-09 23:46 YF-1994 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 示例: 输入:{"$id":"1","next":{"$id":"2","next":null,"random":{"$ref":"2"},"val":2},"random":{" 阅读全文
posted @ 2019-07-09 23:40 YF-1994 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], 阅读全文
posted @ 2019-07-09 23:24 YF-1994 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL 算法:我们先反转中间(2->3->4==>4->3->2),再把剩余两 阅读全文
posted @ 2019-07-09 23:07 YF-1994 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5 算法:类似于merge操作。我们 阅读全文
posted @ 2019-07-09 22:51 YF-1994 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2输出: 1->2示例 2: 输入: 1->1->2->3->3输出: 1->2->3 算法:直接删除 阅读全文
posted @ 2019-07-09 22:41 YF-1994 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2: 输入: 1->1->1->2->3输出: 2->3 算法:我们用两个指针扫描即可,需要注意要不断判断结点是否为空。 阅读全文
posted @ 2019-07-09 22:37 YF-1994 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1- 阅读全文
posted @ 2019-07-09 22:23 YF-1994 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 阅读全文
posted @ 2019-07-09 21:06 YF-1994 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例:给定 1->2->3->4, 你应该返回 2->1->4->3. 算法:我们只需要明确如何交换两个结点即可。具体解释见代码。 阅读全文
posted @ 2019-07-09 20:42 YF-1994 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6算法:归并。我们利用归并排序的思想对链表进行排序即可。故时间复杂度为O(nlogn),空间复杂度为O(n)。 阅读全文
posted @ 2019-07-09 20:39 YF-1994 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4算法:线性扫描。我们只需从头到尾扫一遍两个链表。将小的插到新链表头部。最后不要忘了接上未连接的部分。 阅读全文
posted @ 2019-07-09 20:31 YF-1994 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?算法:线性扫描。我们维护两个指针即可。 阅读全文
posted @ 2019-07-09 20:24 YF-1994 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序做了优化,都是很基础的排序算法就不多做什么说明了。 阅读全文
posted @ 2019-07-09 20:02 YF-1994 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] 阅读全文
posted @ 2019-07-09 15:52 YF-1994 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。 示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子 阅读全文
posted @ 2019-07-09 15:48 YF-1994 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按 阅读全文
posted @ 2019-07-09 11:54 YF-1994 阅读(219) 评论(0) 推荐(1) 编辑
摘要: 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 阅读全文
posted @ 2019-07-09 11:16 YF-1994 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股 阅读全文
posted @ 2019-07-09 10:35 YF-1994 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 阅读全文
posted @ 2019-07-09 10:31 YF-1994 阅读(86) 评论(0) 推荐(0) 编辑