前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法攻关-双指针笔记

算法攻关-双指针笔记

原创
作者头像
小诚信驿站
发布2021-03-06 19:42:00
4940
发布2021-03-06 19:42:00
举报
文章被收录于专栏:技术一号位指南(小诚信驿站)

一、题目分类

双指针目前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++;
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、题目分类
  • 二、题目举例
  • 三、双指针的思想
  • 四、解题表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档