【leetcode】 数组双指针和滑动窗口
数组双指针(Two-Pointer)是一种常用的算法技巧,用于处理数组或链表等数据结构中的问题。它的核心思想是使用两个指针来遍历数组,从而在数组中执行某种操作,如查找、修改、反转等。
通常情况下,数组双指针包括以下三种类型:
双指针分为「对撞指针」、「快慢指针」、「分离双指针」。
- 对撞指针:
两个指针方向相反。适合解决查找有序数组中满足某些约束条件的一组元素问题、字符串反转问题。 - 快慢指针:
两个指针方向相同。适合解决数组中的移动、删除元素问题,或者链表中的判断是否有环、长度问题。 - 分离双指针:
两个指针分别属于不同的数组 / 链表。适合解决有序数组合并,求交集、并集问题。