对撞指针

基本概念

对撞指针:即用两个指针left 和 right,分别指向序列的首尾,left向右,right向左移动,直到两指针相遇(left==rightleft==right)或满足特定条件

求解步骤

  1. 初始化:left=0,right=len(nums)-1
  2. 循环移动指针:根据特定条件,移动指针
  3. 结束循环:两指针相遇或满足特定条件

通用模板:

1
2
3
4
5
6
7
8
9
10
11
#1. 初始化:left=0,right=len(nums)-1
left,right=0,len(nums)-1
#2. 循环移动指针:根据特定条件,移动指针
while left<right:
if 满足条件:
return
elif 满足条件1
left+=1
elif 满足条件2
right-=1
return 没找到

应用场景:

对撞指针常用于有序数组或字符串,典型应用包括: