一、题目分类
双指针目前LC上涉及83道题,属于面试的一个高频范围区。我们根据标签分类是可以获取到一部分信息笔试考察范围点的。目前LC上一共是1989道题。概率为83/1989= 4.17%.
二、题目举例
- 链表中是否有环
- 查找、删除链表倒数第K个节点
- 最小覆盖子串
- 两数之和-有序数组
- 三数之和
- 最接近的三数之和
- ....等
三、双指针的思想
双指针的思想可以归纳为:
双指针很奇妙,一快一慢走。
相距K位,可解链表倒数K节点。
相距K位,可解链表是否有环。
相距K位,滑动窗口思想题目跑不了。
持续更新....
四、解题表达式
双指针公式->固定一方,变动另一方,或者双方一起同步
代码语言:javascript复制right = left K;
//链表倒数第K个节点类问题
while(right.next != null){
left= left.next;
}
return left;
//链表循环检测问题 right比left快一步
right = left K ; K =1;
while(left != right){
if(left ==null || right.next == null){
return false;
}
left = left.next;
right = right.next.next;
}
滑动窗口公式->固定一方,变动另一方:
代码语言:javascript复制when(right - left 1 > minWindow){
//固定左指针,移动右指针
if(condition1){
//处理使其满足condition2条件,并不符合condition1条件
right ;
}
//固定右指针,移动左指针
if(condition2){
//处理使其满足condition1条件,并不符合condition2条件
left ;
}
}