2. Two Pointer

Template

 Two pointer types:
• 对撞型 (2 sum 类 和 partition 类)
• 前向型 (窗口类, 快慢类)
• 两个数组,两个指针 (并行)
  • “对撞型”或“相会型”

//Two sum

if (A[left] + A[right] > sum)
    right--;
    do something
else if (A[left] + A[right] < sum)
    left++;
    do something
else
    do something
    left++ or right--
    
// 灌水类型题目思路
if (A[left] > A[right])
    right--
else if (A[left] < A[right])
    left++
else
    left++ or right--
  • 快慢型

Typical problems

  • NSum problems

Last updated