双指针问题?so easy!

总纲

双指针指在遍历过程中使用两个指针进行扫描达到目的。大致分为快慢指针(相同方向)和左右指针(相向方向)。

值得一提的是,左右指针是很多算法的基础和搭配,如 归并排序、滑动窗口、字符匹配、单调栈等。

快慢指针

快慢指针一般解决链表问题。

指针初始化指向 head,前进时 fast 在前,slow 在后,具体的步幅根据题目决定。

题目举例

题号 题目 难度
141 环形链表 简单
142 环形链表II 中等
剑指14 倒数第k个节点 简单

左右指针

左右指针主要解决数组/字符串问题。

两个索引值,一个指向开头 left = 0,一个指向末尾 right = nums.length - 1。

题目举例

题号 题目 难度
704 二分查找 简单
167 两数之和II 简单
633 平方数之和 简单
653 两数之和IV 简单
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章