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