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

【双指针】对撞指针 快慢指针 移动零

文章目录

  • 双指针介绍
      • 对撞指针
      • 快慢指针
  • 283. 移动零
    • 解题思路
      • 算法思路
      • 算法流程

在这里插入图片描述

双指针介绍

​ 算法中的双指针,并不一定是指我们平常在 c/c++ 使用的指针类型,更多时候其实是数组的下标等,因为它们也是有标识某个元素的功能,通常我们也就顺其自然地称其为 “指针”

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

对撞指针

​ 一般用于顺序结构中,也称为左右指针。对撞指针 从两端向中间移动。一个指针从最左端开始,另一个从最右端开始,然后逐渐往中间逼近。

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

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

快慢指针

​ 又称为龟兔赛跑算法,其基本思想就是 使用两个移动速度不同的指针在数组或链表等序列结构上移动。这种方法对于处理环形链表或数组非常有用!

​ 其实不单单是环形链表或者是数组,如果我们要研究的问题出现循环往复的情况时,均可考虑使用快慢指针的思想。快慢指针的实现方式有很多种,最常用的一种就是:

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

283. 移动零

283. 移动零

​ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

http://www.xdnf.cn/news/39457.html

相关文章:

  • 文献×材料 | 基于ANSYS的刹车片环保材料分析研究
  • C 语 言 --- 指 针 3
  • IsaacSim Asserts 配置
  • [Java]反射、String类补充
  • Workflow轻量级工作流引擎实现
  • 5. 话题通信 ---- 发布方和订阅方python文件编写
  • 前端面试中高频手撕[待补充]
  • STM32单片机教程:从零开始打造智能天气时钟
  • 【技术追踪】用于医学图像分割的 Diffusion Transformer U-Net(MICCAI-2023)
  • 裂项法、分式分解法——复杂分式的拆解
  • AIGC-几款市场营销智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)
  • QTcpSocket多线程遇到的读写数据问题
  • win11自带中文输入法不见了怎么解决
  • 2025年4月19日 记录大模型出现的计算问题
  • 洛谷B3862:图的遍历(简单版)← 链式前向星
  • Bash 中的数学运算详解
  • 共享单车出行规律与决定因素的空间交互分析——以北京六大区为例
  • 详解多线程高并发IOCP开发模式(含示例说明)
  • 深入解析 JDK jstack 命令:线程分析的利器
  • 数据结构初阶:二叉树(三)
  • PHP异常处理__RuntimeException运行时错误
  • PDF转excel+json ,vue3+SpringBoot在线演示+附带源码
  • 作业2 CNN实现手写数字识别
  • 深度学习--卷积神经网络CNN原理
  • ubuntu18.04安装QT问题汇总
  • NBA 特刊官方报名系统-Overview of NBA Special Issue Official Registration Syste
  • 爬取B站视频弹幕的简易教程(上)
  • AI 提示词教程:从新手到高手的进阶之路
  • Kubernetes相关的名词解释CoreDNS插件(2)
  • MySQL事务