当前位置:   article > 正文

力扣刷题之刷题技巧总结--双指针技巧_力扣中出现原地排序 修改就能想到双指针吗

力扣中出现原地排序 修改就能想到双指针吗

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

双指针的分类

双指针的理解

快慢指针、左右指针

快慢指针

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

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

判断链表是否有环

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

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

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

原理:

寻找链表的中点

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

有序数组/链表去重

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

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

代码:


                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/860543
推荐阅读
相关标签
  

闽ICP备14008679号