柿子先生的博客

我有半亩良田,种有柿子两棵

本文使用双指针解决了如下算法问题:

力扣 141.环形链表

力扣 142.环形链表II

力扣 160.相交链表

力扣 19.删除链表的倒数第 N 个节点

力扣 21.合并两个有序链表

力扣 23.合并 K 个升序链表

力扣 86.分割链表

力扣 876.链表的中间节点

剑指 Offer 22.链表中倒数第 k 个节点

剑指 Offer 25.合并两个排序的链表

剑指 Offer 52.两个链表的第一个公共节点

剑指 OfferII 021.删除链表的倒数第 n 个节点

剑指 OfferII 022.链表中环的入口节点

剑指 OfferII 023.两个链表的第一个重合节点

剑指 OfferII 078.合并排序链表

阅读全文 »

链表有环问题可以使用双指针技巧轻松解决。

  • 判断链表是否有环问题,可以通过设置快慢指针同向遍历链表,若相遇则有环。

  • 找环入口问题,也可以通过设置快慢指针同向遍历链表,寻找相遇点。不同的是,当两指针相遇后,快指针回到链表头节点,慢指针留在相遇节点,两者同速遍历,二次相遇点一定是环入口

下面两道题精选于牛客网面试必刷TOP101,相信我,十分简单,非常容易理解!

阅读全文 »

相似解法题目多元组

  • 哈希表:<BM50 两数之和,BM54 三数之和>
阅读全文 »

书接上篇手撕算法必备技巧(贰) —— 双指针(链表篇),前文提到了什么是双指针技巧,以及该技巧如何在链表中应用。本文主要讲解双指针技巧是如何解决大厂面试中常见的数组问题。

考察过该技巧的公司有阿里巴巴、腾讯、美团、拼多多、百度、华为等大厂。

食用指南: ⭐️为一刷必做题,便于快速理解双指针技巧;无星题目可在刷完⭐️题目后再做,用于拓展学习双指针技巧如何与其他算法知识结合使用。

日志更新:文章底部给出了更新日志,帮助小伙伴们快速知晓最近优化了哪些技巧,更新了哪些题目。

我相信,友好的讨论交流会让彼此快速进步!文章难免有疏漏之处,十分欢迎大家在评论区中批评指正。

阅读全文 »