随笔分类 - 算法基础:双指针
摘要:编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表 : " " 在节点 c1 开始相交。 示例 1: " " 示例 2: " " 示例 3: " " 注意: 如果两个链表没有交点,返回 . 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O( n
阅读全文
摘要:特别感谢LeetCode大佬 "陈牧远" 的科普知识 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n ),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 示例 2: 说明: 1. 不能 更改原数组(假设数组是只读
阅读全文
摘要:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 说明: 不允许修改给定的链表。 示例 1: 示例 2: 示例 3: 进阶: 你是否可以不用额外空间解决
阅读全文
摘要:给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 示例 1: 示例 2: 示例 3: 进阶: 你能用 O(1) (即,常量)内存解决此问题吗? 代码: 中规中矩的快慢指针,12ms 9MB
阅读全文
摘要:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 问题分析 对于链表的问题,根据以往的经验一般都是要建一个dummy node,连上原链表的头结点,这样的话就算头结点变动了,我们还可以通过dummy next来获得新链表的头结点。这道题的要
阅读全文
摘要:给定一个链表和一个特定值 x ,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: Code: 巧设双指针
阅读全文
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? Code: 递归法 Code: 双指针法
阅读全文