双指针基础

一、双指针

双指针主要用于遍历数组,两个指针指向不同的元素,互相协同,一般来说都在同一数组中。

二、分类

根据问题的不同,指针的移动方向也会不同,可分为两种情况:

  • 遍历方向相同且不会相交
    这种情况一般用于解决对数组的某区间进行搜索,也称为滑动窗口问题。
  • 遍历方向相反且数组本身有序
    这种情况一般用于元素的搜索

应用可分为:

  1. 两数和问题
  2. 归并两个有序数组问题
  3. 快慢指针问题
  4. 滑动窗口问题

在这里插入图片描述

三、关于指针的基础回顾

  • const后跟int,值不可改,指针可改
const int * p2 = &x  
  • const后跟指针p3前,值可改,指针不可改
int * const p3 = &x
  • const后跟int和指针p4,值可改,指针不可改
const int  * const  p4 = &x 
  • *左结合,故为返回类型为指针的函数
int * function(){}
  • ( )*括在里面,与function结合,故为返回;类型为函数的指针
int func2(int a,int b){}
int (*function)(int,int) = func2;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值