刷算法Leetcode---5(双指针篇)

前言

        文章的刷题顺序按照代码随想录中给出的力扣题目顺序  代码随想录

        双指针相关的题,在之前的文章中都有提到,并且每个题都有其他解法,这里就不详细列出每个题所有方法的实现,只对于双指针的解法进行总结(每题对应的文章链接会在下面给出)

        其他文章链接:刷算法Leetcode文章汇总 

双指针篇

27.移除元素(对应: 刷算法Leetcode---1(数组篇)

        左指针遇到要移除的元素就与右指针交换,注意左指针要重新判断 

344.反转字符串(对应:刷算法Leetcode---4(字符串篇)

        左右指针交换

151.反转字符串中单词(对应:刷算法Leetcode---4(字符串篇)

        左右指针确定每个单词的位置

206.反转链表(对应:刷算法Leetcode---2(链表篇)

        三指针,前两个进行反转,最后一个记录下一个节点

19.删除链表的倒数第N个节点(对应:刷算法Leetcode---2(链表篇)

        快慢指针,快指针先走n+1步(根据具体判断条件设计而不同)

面试题 02.07. 链表相交(对应:刷算法Leetcode---2(链表篇)

        双指针分别从两个头节点开始,到链表尾部后分别从另一个头节点开始,直至相交

142.环形链表Ⅱ(对应:刷算法Leetcode---2(链表篇)

        快慢指针,快指针每次走两个节点,慢指针走一个节点,快慢指针相遇则代表有环。再分别从相遇点和头节点开始移动,再次相遇则为环入口(理论推导见另一文章)

15.三数之和(对应: 刷算法Leetcode---3(哈希表篇)

        排序+双指针,在第一个数确定的情况下,使用双指针找另外两个数(剪枝见另一文章)

18.四数之和(对应: 刷算法Leetcode---3(哈希表篇)

        排序+双指针,与三数之和类似,先确定前两个数,使用双指针找后两个数(剪枝见另一文章)

双指针总结

①数组:

        二分查找;

        指定元素交换位置(题27)、快排;

        数组反转;

        有序数组查找目标和的两个数(题15、18)

②链表:

        反转链表(题206);

        寻找倒数个节点(题19);

        相交链表(面试题02.07);

        环形链表(题142)

③字符串:

        字符串反转(题344);

        字符串中单词反转(题151)

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值