本文最后更新于:5 天前

数组有序即可用双指针!

  1. 快慢指针
    1. 原地修改
      1. 左右指针快慢指针
        • 左右指针,相向而行或者相背而行
        • 快慢指针,同向而行,一快一慢
      2. 数组中索引作为指针
    2. 滑动窗口
      1. left 指针在后,right 指针在前,中间的部分就是「窗口
      2. 通过扩大和缩小「窗口」来解决某些问题
  2. 左右指针
    1. 二分查找
      1. 左右首尾相向双指针
      2. 循环比较中点与目标值
      3. 等于目标就返回,大于目标收缩右,小于目标收缩左
    2. n 数之和
      1. 左右相向双指针,求和比较目标值
      2. 大于左移小于右移等于就返回
    3. 反转数组
      1. 左右双指针相向移动交换值,直到相遇
    4. 回文串判断
      1. 最长回文串:
        1. 遍历原字符串每个字符
        2. 背向双指针自中心向两边扩散(同时考虑奇偶回文串)
        3. 持续更新为最大值
1
2
3
4
for 0 <= i < len(s):
找到以 s[i] 为中心的回文串
找到以 s[i] 和 s[i+1] 为中心的回文串
更新答案

https://alleyf.github.io/2026/03/468ea116a409.html
作者
alleyf
发布于
2026年3月4日
更新于
2026年3月4日
许可协议