数组双指针之快慢指针

本文介绍了数组双指针中的快慢指针技巧,主要应用于判断链表环、寻找单链表终点及倒数第k个节点等。通过快慢指针可以在不增加额外空间复杂度的情况下高效地处理数组问题。文章提供了快慢指针的基本框架,并举例说明其在原地修改数组和处理回文串中的应用。
摘要由CSDN通过智能技术生成

数组双指针

数组双指针分为两类:

  • 左右双指针:左指针在最左侧,右指针在最右侧,它们相向而行
  • 快慢双指针:在单链表中经常使用fast、slow指针去判断链表中是否成环、单链表的终点、单链表倒数第k个结点等;同向而行;快指针在前面跑,慢指针在后面追;
  • 特例:背向而行–回文串

1、快慢指针技巧,原地修改数组
分析:

也可直接使用数组删除–代价是复杂度高
高效率----双指针

概述:
fast起到一个探路的作用:fast每找到一个不同的元素,然后就将元素赋值给slow,让slow往前走一步,维护了这个数组中的元素没有重复的;
遍历完整个数组之后,0-slow就是需要的结果,将整个长度返回即可。

框架:

1、定义快慢指针—名为指针(实际是int类型代表数组的下标)

2、fast提前进行向前面走去、slow在后面将fast寻找的不重复的数进行存储

题目
在这里插入图片描述

int removeDuplicates(int* nums, int numsSize){
   
    int fast
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值