- 一般来说,使用双指针可以降低时间复杂度一个数量级
- 优点:在一个 for 循环下完成两个 for 循环的工作
快慢指针
遵循原则:快指针用来寻找和判断是否放入新数组,慢指针表示新数组放入元素的坐标
leetcode:
两端向中间
leetcode:
- 167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)
- 15. 三数之和 - 力扣(LeetCode)
- 18. 四数之和 - 力扣(LeetCode)
- 11. 盛最多水的容器 - 力扣(LeetCode)
从后往前
leetcode:
滑动窗口
核心思想:
- 维护一个有条件的滑动窗口
- 右端点右移,使窗口扩大,导致不满足条件
- 左端点右移,使窗口缩小,再次满足条件