摘要: 题目说明 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。 解法1 首先遍历链表,记录结点个数,当满足个数等于k时,开始进行反转,反转完成后,个数重新计数。 假设n为k区间中 阅读全文
posted @ 2018-09-04 01:48 JESSET 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字 解法1 该解法只使用一层循环,遍历链表,每次判断当前点与下一个结点的值是否相等,若相等,则删除下一个结点。但是这样与当前点所有相等的结点都删除后,无法判断当前是否需要删除,所以添加了一个标识位来判断是否需 阅读全文
posted @ 2018-09-02 11:21 JESSET 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 解法1 两个链表长度相同的部分,对位相加,注意需要还需要加上上一次相加的进位值。得到结果后,将个位数存入结果链表中,十位数等待下一次相加使用。 然后对较长的链表进行相同操作 阅读全文
posted @ 2018-09-01 14:21 JESSET 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 解法1 / 时间复杂度:O(n) 阅读全文
posted @ 2018-09-01 13:28 JESSET 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 解法1 遍历链表,记录最后一个小于x的结点less,当遍历到的结点小于x时,将该点插入到less之后,直到遍历结束。 / 时间复杂度:O(n 阅读全文
posted @ 2018-09-01 12:46 JESSET 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目说明 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 解法1 首先遍历到m的前一个结点,由于m点可能处理第一个位置,所以需要创建虚拟头结点,指向m结点,然后反转[m,n]的结点。 反转结点: 1、记录当前点的下一个结点,防止下一点位置丢失 2、当前点的下一个结点指向前一个结点 3、前一 阅读全文
posted @ 2018-08-31 07:26 JESSET 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。 解法1 对于位置之差保存在k以内,使用set维护一个不大于k的窗口,在数组内进行遍历。 第一层循环指定窗口的右 阅读全文
posted @ 2018-08-27 00:35 JESSET 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 解法1 / 时间复杂度:O(n) 使用unordered_set保存滑动窗口(长度[0,k]) / bool contai 阅读全文
posted @ 2018-08-26 16:37 JESSET 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。 解法1 首先遍历点,在第二层循环中使用map记录倾角斜率及其匹配次数。 斜率dx/dy(dx表示两点x轴的距离,dy表示两点y轴的差值)进行计算,但是这里有一种特殊情况,就是dy=0的情况,此种情况下点也在同一直线下, 阅读全文
posted @ 2018-08-26 12:55 JESSET 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目说明 给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。 解法1 使用unordered_map。 第一层循环来遍历i的值 第二层循环,要找到所有与i的距离与对应 阅读全文
posted @ 2018-08-24 10:22 JESSET 阅读(193) 评论(0) 推荐(1) 编辑