双指针在字符串、数组、链表等数据结构中常常可以看见。一般分为两种,双指针从首尾两端向中间靠近;或者从同一个方向出发,这种一般也叫快慢指针
。在处理双指针的题时,两个指针的初始位置和移动条件是解题的关键。如果运用得当,可以将时间复杂度O(n2)的时间复杂度降为O(n)
滑动窗口
主要是通过左右指针
形成一个“窗口大小”来求解一些连续子串/子数组/子串能否组成主串
等问题。
左右指针一般是从同一个位置开始,根据不同的条件,左右指针移动的时机不同。
根据题目的要求,左右指针的移动时机是解题的关键。