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

优先算法1--双指针

“一念既出,万山无阻。”加油陌生人!

目录

1.双指针--移动零

2.双指针-复写零


 

ok,首先在学习之前,为了方便大家后面的学习,我们这里需要补充一个知识点,我这里所谓的指针,不是之前学习的带有*的那个指针,我们这里的数组的下标,类似充当指针作用,在这里我们也叫做指针!

了解之后,现在我们开始进入学习!!!

1.双指针--移动零

首先我们带入题来进行教学:

解题思路:

代码如下:

 

 

2.双指针-复写零

 

 解题思路:

1.用两个指针,一个指向截止元素,一个指向数组最后一个位置。然后,从后往前进行,是的没错从后往前,那么原因是,如果从前往后去遍历,则会覆盖数字,造成错误。

例子(从前往后,错误示范

这个不就把“2”覆盖了吗,对吧!!!所以从前往后是错误的! 

正确写法:(从后往前)

问题1(寻找截止数):问题又来了?我们从后往前,怎么知道从最后哪里开始呢?答案:先遍历一遍,找到截止“数”

 

结束之后,我们就找到了截止数是“4” .

问题二(考虑边界问题)一个小陷阱,如果在寻找截止数的时候,在边界情况,prev>n-1,越界了,这个时候我们如何处理。

代码如下:

步骤三(从后往前遍历): 

 

 完整代码:


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

相关文章:

  • 代理IP如何广告验证的效率和成功率?
  • 新品牌Sesame Street《芝麻街》商标版权双维权,尚未TRO
  • 在顺序结构和链式结构的线性表上实现顺序检索算法
  • Ubuntu20.04同时安装ROS1和ROS2,如何选择ROS1 or ROS2
  • CVESearch部署、使用与原理分析
  • 使用mnist数据集和LeakyReLU高级激活函数训练神经网络示例代码
  • Springboot 使用【过滤器】实现在请求到达 Controller 之前修改请求体参数和在结果返回之前修改响应体
  • 25.1 降低采集资源消耗的收益和无用监控指标的判定依据
  • 7-2 试试多线程
  • 探索C#编程基础:从输入验证到杨辉三角的生成
  • Java——数组的定义与使用
  • AndroidLogger 使用问题
  • 大厂面试真题-AQS中节点的入队时机有哪些
  • React入门 9:React Router
  • 【汇编语言】寄存器(CPU工作原理)(七)—— 查看CPU和内存,用机器指令和汇编指令编程
  • 多语言网站的设计的探索——安企CMS多语言功能的实现记录
  • Python字符串格式
  • 鸿蒙开发 三十七 ArkTs类 class
  • HAL库常用的函数:
  • oracle存储过程