用途:该技能针对有序或顺序结构数据,用双指针技巧替代嵌套循环,把原本 O(n²) 的暴力解法降到 O(n)。适用于配对求和、三数之和、盛水容器等题目,滑动窗口类“最长/最短满足条件的子串”问题,以及链表环检测。
主要能力与规则:一是有序数组双指针,从 left=0、right=n-1 开始,根据比较结果向内移动。二是滑动窗口,先扩张右边界,违反约束时收缩左边界。三是快慢指针,用 Floyd 算法检测链表环,并可用于寻找中间元素。资料强调:当数据有序时,应优先使用双指针而非嵌套循环;当双指针可行时,不应使用嵌套循环。
复杂度:双指针、滑动窗口、快慢指针均为 O(n)。
示例:有序数组两数之和,left=0,right=n-1;若 arr[left]+arr[right] 小于目标则 left 加一,否则 right 减一。最长无重复子串,扩张右边界,遇到重复时收缩左边界。
限制:资料未提供具体安装命令、依赖平台或调用接口,也未说明适用的编程语言与运行环境,这些信息暂未提供。