概念
双指针,顾名思义,就是利用两个指针去遍历数组,一般来说,遍历数组采用的是单指针(index)去遍历,两个指针一般是在有序数组中使用,一个放首,一个放尾,同时向中间遍历,直到两个指针相交,完成遍历,时间复杂度也是O(n)。
使用场景
- 时间复杂度:O(n) 并且 One Pass
- 空间要求:in place
- 两数之和满足某条件
- 先对数组排序,再采用两个指针,分别从前和后往中间遍历,front增大,tail减小,通过对条件的判断,可以在O(n)内遍历,而非使用双重循环。
- in place交换
- 一个指针正常遍历,另一个指针去找可以用来交换的元素。
例题
- 有序数组的 Two Sum
- 两数平方和
- 反转字符串中的元音字符
- 回文字符串
- 归并两个有序数组
- 判断链表是否存在环
- 最长子序列
参考文章:
FROM :blog.cfyqy.com | Author:cfyqy
特别标注:
本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论