可以比较两个指针是否相等_算法一招鲜——双指针问题

本文介绍了双指针法,包括对撞指针和快慢指针的使用,通过实例解析LeetCode中的救生艇问题和环形链表判断。双指针对有序数组问题尤其适用,能有效降低空间和时间复杂度。
摘要由CSDN通过智能技术生成
a286fd70e250932a197ce1819a35fe6d.png

什么是双指针(对撞指针、快慢指针)

双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。

换言之,双指针法充分使用了数组有序这一特征,从而在某些情况下能够简化一些运算。

在LeetCode题库中,关于双指针的问题还是挺多的。双指针

882d4fedfcbbbac30db363dd08f6ad5a.png

img

用法

对撞指针

对撞指针是指在有序数组中,将指向最左侧的索引定义为左指针(left),最右侧的定义为右指针(right),然后从两头向中间进行数组遍历。

对撞数组适用于有序数组,也就是说当你遇到题目给定有序数组时,应该第一时间想到用对撞指针解题

伪代码大致如下ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值