双指针
- 相向指针:
- 判断字符串是否为回文串 125. 验证回文串 680. 验证回文字符串 Ⅱ
- 翻转字符串
相向指针是指两指针初始位于一头一尾,然后向中间移动。常用来:
- 同向指针
指双指针向同一方向移动,包括快慢指针, 滑动窗口 ,快排分区等。
两个指针维护的是一大区间。
应用了某些单调的性质,将原先O(n^2) 的情况(两层循环维护两个指针)优化为O(n)(只枚举O(n)的状态)
- 背向指针
指俩指针初始点均在中间,然后一向左一向右的移动。常用来查找最长回文子串。5. 最长回文子串
速通
双指针完整笔记参见 双指针
双指针有:同向,相向,背向 三种。通常,二分法、单调栈、单调队列、滑动窗口、链表操作等都属于广义的双指针。其本质是维护一段区间。但此处的双指针更多特指以下三种情况
- 维护一段区间的问题 26,283
- 根据单调性不断缩减搜索空间的 11,825
- 抽象为找链表环的问题 287,202
11. 盛最多水的容器 面积取决于指针的距离与值小的值乘积