算法系列03:双指针入门,从两端收缩到同向快慢
双指针能把一类看似 O(n²) 的问题压成 O(n),是非常实用的基础技巧。
学习目标 区分对撞指针、快慢指针 写出标准循环不越界 认识“单次排序 + 指针”组合的威力 对撞指针 应用于有序数组两数和类问题: 每次都让和向目标靠近。 快慢指针 常用于移除重复值或重排: 复杂度一般是 O(n),额外空间 O(1)。 常见坑 循环条件常用 left < right。 每次更新指针后仍要保持有序前提。 建议在纸上画 3 步模拟边界。
双指针能把一类看似 O(n²) 的问题压成 O(n),是非常实用的基础技巧。
学习目标 区分对撞指针、快慢指针 写出标准循环不越界 认识“单次排序 + 指针”组合的威力 对撞指针 应用于有序数组两数和类问题: 每次都让和向目标靠近。 快慢指针 常用于移除重复值或重排: 复杂度一般是 O(n),额外空间 O(1)。 常见坑 循环条件常用 left < right。 每次更新指针后仍要保持有序前提。 建议在纸上画 3 步模拟边界。