力扣刷题之刷题技巧总结--双指针技巧

双指针技巧--参考拉不拉东
摘要由CSDN通过智能技术生成

力扣刷题之刷题技巧总结–双指针技巧

双指针的分类

双指针的理解

快慢指针、左右指针

快慢指针

快慢指针解决链表问题尤其有效

一般看到链表的题都要下意识地想起双指针

判断链表是否有环

一个快指针,一个慢指针
快指针一次进两步,慢指针一次进一步
如果链表是没有环的话,快指针就是会走到链表的尽头,指向空(NULL)
而如果链表是有环的话,快指针最后就会比慢指针走快一圈,然后相遇。

已知链表有环,找到链表的环的起点

快指针与慢指针相遇之后,让慢指针重新回到头节点,再次相遇的时候,慢指针所对应的位置就是环的起点

原理:

寻找链表的中点

快指针一次进两步
慢指针一次进一步
当快指针走到头的时候
慢指针的指向就是链表的中点(奇数)
偶数就是中点偏右

有序数组/链表去重

只要是有序的数组,首先就要先想到双指针
力扣题号:26.去除排序数组中的重复项

因为涉及到原地修改,所以不能用哈希表和栈等结构去做
因此我们得用快慢指针,让快指针探路,慢指针待命
通过判断快指针与慢指针对应的值来完成遍历

代码:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值