1. 双指针法解决链表/数组题目
只要数组有序,就要想到双指针做法。还有二分法
回文串一般也会用到双指针,回文串的长度由于可能是奇数也可能是偶数,所以在寻找时,既需要寻找奇数长度的回文串,也需要寻找偶数长度的回文串。
2. 滑动窗口算法
滑动窗口也是双指针问题,快慢指针,一前一后,中间的部分就是滑动窗口。滑动窗口算法主要用于解决子数组问题。
滑动窗口按照以下步骤来写:初始化窗口,扩大窗口,扩大窗口的逻辑/数据的更新,在合适的时候开始缩小窗口,缩小窗口的逻辑,返回结果。
滑动窗口要注意缩小窗口大小的逻辑,比如说排列问题中,就是当窗口大小等于目标串的长度时缩小窗口大小,在缩小时再去判断是否满足要求,满足就记录。