快慢指针

基本概念

快慢指针:指两个指针从同一侧出发,步长不同,快指针(fast)移动更快,慢指针(slow)移动较慢。它们以不同速度遍历序列,直到快指针到达末尾、两指针相遇或满足特定条件时停止。

求解步骤

  1. 初始化:slow=0,fast=1
  2. 循环移动指针:根据特定条件,移动指针
  3. 结束循环:fast到达数组末尾两指针相遇或满足特定条件

通用模板:

1
2
3
4
5
6
7
8
#1. 初始化:slow=0,fast=1
slow,fast=0,1
#2. 循环移动指针:根据特定条件,移动指针
while fast<len(nums):
if 满足条件:
slow+=1
fast+=1
return 最终结果

应用场景:

快慢指针主要用于解决数组元素的移动、删除等问题,以及链表中的环检测、长度统计等操作