leetcode总结-快慢指针题型总结


使用快慢指针,可以在 O(n) 的时间复杂度 O(1) 的空间复杂度完成答题

题型

对于线性表类型的题目,已知线性表中某个结点满足什么条件,找到这个结点,我们就可以用到快慢指针,同时要找的这个结点所具有的特性决定着快指针比慢指针要“快”多少

时间复杂度一般可达 O(n),空间复杂度可达 O(1)

关键字

要求线性表中某个结点的结点值

解题步骤

若题型符合快慢指针的题型

  • 1.设置快指针有多快

    快指针比慢指针快多少?这要看题目的条件,比方说如果题目要求链表最中间的结点值,我们可以设置快指针每次移动速度是慢指针的两倍,以后遍历事,慢指针一格一格移就行了,快指针两倍速的移即可。如果题目要求的是链表中倒数第 n 个结点,我们可以将快指针率先移动到正数第 n 个位置,以后慢指针从第 0 个开始,快指针从 n 开始同时遍历即可。

    所以快指针怎么设置的问题要看题目要求

  • 2.开始同时遍历快慢指针

    遍历链表,快慢指针分别往后查找,直到 null,要求的结果就是慢指针指向的结点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值