当前位置: 首页 > news >正文

双指针——对撞指针与左右指针

双指针——对撞指针与快慢指针

常见的双指针有两种形式,⼀种是对撞指针,一种是快慢指针

1、对撞指针

⼀般用于顺序结构中,也称左右指针

  • 对撞指针从两端向中间移动。⼀个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼近。

  • 对撞指针的终止条件⼀般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是:

    • left == right (两个指针指向同⼀个位置)
    • left > right (两个指针错开)

2、快慢指针

快慢指针又称为龟兔赛跑算法,其基本思想就是使用两个移动速度不同的指针在数组或链表等序列结构上移动。

这种方法对于处理环形链表或数组非常有用。

其实不单单是环形链表或者是数组,如果我们要研究的问题出现循环往复的情况时,均可考虑使用快慢指针的思想。

快慢指针的实现方式有很多种,最常用的⼀种就是:

  • 在⼀次循环中,每次让慢的指针向后移动⼀位,而快的指针往后移动两位,实现⼀快⼀慢。

本篇为知识点讲解,下一篇会出有关双指针的例题来给大家讲解双指针的妙处,感觉不错的友友们可以一键三连支持一下笔者,有任何问题欢迎在评论区留言哦~


http://www.mrgr.cn/news/61488.html

相关文章:

  • 一个简单的html5导航页面
  • LeetCode432周赛T2,记忆化搜索
  • 数据表中的数据插入、更新和删除
  • 【芯片封测学习专栏 -- 单 Die 与 多Die(Chiplet)介绍】
  • 泛目录和泛站有什么差别
  • ubuntu22.04 gcc,g++从10.5切换到低版本9.5
  • Spring Boot集成Milvus和deeplearning4j实现图搜图功能
  • 提升质量:构建系统性的质量保证策略
  • java-web-day6-下-知识点小结
  • 构建生产级的 RAG 系统
  • GCC及GDB的使用
  • 自适应阻抗案例分析(上)
  • 基于SpringBoot+LayUI+Vue智能停车收费系统
  • 第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八
  • 【工具】Charles对360浏览器抓包抓包
  • Nginx 迁移到 Caddy:一次完整的反向代理配置迁移实践
  • 美国技术论坛汇总
  • 滴滴面试:单表可以存200亿数据吗?单表真的只能存2000W,为什么?
  • PG数据库之视图详解
  • or-tools优化库记录
  • 数据结构:并查集
  • 不吹不黑,客观理性深入讨论国产服务器
  • Tessy学习笔记-CTE如何生成测试用例
  • linux_电脑一运行程序就死机怎么处理?
  • js 简单模拟JSON.stringify 功能
  • 大模型AI在教育领域有哪些创业机会?