朴素算法Bare Algo

双指针法

对撞指针、快慢指针及滑动窗口。

算法题

(12)

第 1 阶段:相向双指针与首尾对撞

先掌握从两端向中间逼近的基本模型,理解什么时候该移动左指针、什么时候该移动右指针。

125. 验证回文串

简单
双指针字符串

11. 盛最多水的容器

中等
数组双指针贪心

167. 两数之和 II - 输入有序数组

中等
数组双指针二分查找

977. 有序数组的平方

简单
数组双指针排序

844. 比较含退格的字符串

简单
双指针栈字符串

第 2 阶段:同向快慢指针与原地覆盖

这一阶段重点练习同向双指针、快慢指针和原地写回,把数组覆盖、去重和稳定移动这些操作练熟。

26. 删除有序数组中的重复项

简单
数组双指针

283. 移动零

简单
数组双指针

27. 移除元素

简单
数组双指针

80. 删除有序数组中的重复项 II

中等
数组双指针

75. 颜色分类

中等
数组双指针排序

第 3 阶段:多重指针协作与复杂区间

最后处理需要多根指针配合推进的题目,重点理解排序后的夹逼、多状态更新,以及区间边界是如何被同步维护的。

15. 三数之和

中等
数组双指针排序

42. 接雨水

困难
数组双指针动态规划栈

实际应用

(7)

虚拟列表窗口

中等

虚拟列表常双端维护当前可视区间范围,提升处理效率。

滑动窗口双指针虚拟滚动性能优化

懒加载/预加载

简单

列表与轮播常向两侧预加载邻近资源数据,提升处理效率。

双指针性能优化资源加载

原地过滤/压缩

中等

大列表过滤常原地压缩数据,减少额外分配,提升处理效率。

快慢指针内存优化数组操作

Diff 优化 (双端比较)

困难

双端Diff常先比较首尾节点,减少移动成本,提升处理效率。

双端指针框架原理

回文/对称规则校验

简单

对称校验常从两端收敛比较字符或元素,提升处理效率。

对撞指针校验算法

两路归并

中等

双路有序数据常并行扫描后稳定归并输出,提升处理效率。

归并排序数据处理排序

分区/原地分组

中等

原地分组常用双指针交换元素完成分类,提升处理效率。

双指针扫描数组分类排序