双指针
双指针:在区间操作时,利用两个下标同时遍历,进行高效操作
双指针利用区间性质可以把 O ( n 2 ) O(n^2) O(n2) 时间降低到 O ( n ) O(n) O(n)
反向扫描
反向扫描: l e f t left left = 起点,不断往右走, r i g h t right right = 终点,不断往左走,直至相交则停止
一般用于有序数组或者字符串类问题
同向扫描
同向扫描:也被称为滑动窗口,始终维护一个 [ l e f t , r i g h t ] [left,right] [left,right] 的区间
维护 [ l e f t , r i g h t ] [left,right] [left,right] 区间中的信息:区间和、各个元素个数等
- 左端点往右移动表示删除元素
- 右端点往右移动表示增加元素
当移动到尾部则停止,或满足特殊条件时停止
详见个人博客:双指针