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

【算法】双指针(二)复写零

目录

一、题目介绍

二、双指针原理

1.当前维护指针

1.2维护要求

(1)不能覆盖掉未产效元素

三、提交代码


一、题目介绍

1089. 复写零 - 力扣(LeetCode)


二、双指针原理

扩容遍历指针当前维护指针 从小维护到大

1.当前维护指针

1.1维护方向-双指针(一)移动零

1.2维护要求

(1)不能覆盖掉未产效元素

超前式覆盖 就从结果后位开始 往回 变回 在后追赶 逆序维护


三、提交代码

public void duplicateZeros(int[] arr) {//省去维护的覆盖 到结果后位,就成直接数步子了:int cur = 0;int dest = 0;while(dest < arr.length) {if(arr[cur] == 0) {dest += 2;}else {dest += 1;}cur++;}//从结果后位开始 往回在后追赶 逆序维护:if(dest == arr.length) {//两指针指向的 都是自然再向后移动到的,指向的 并未展开 对着覆值操作的,此时都往回一步就到 数组末尾操作值位置dest--;cur--;}if(dest > arr.length) {dest--;cur--;//两指针都往回移回一步后 就可以对着开始 往回覆值操作了,但这里dest指向的是越界处,得手动 覆值调一下arr[dest - 1] = arr[cur];//一定是之前cur指向了0的连续导致的,往回一步后的此时arr[cur]一定是0,连续覆两次dest -= 2;cur--;}while(cur >= 0) {if(arr[cur] == 0) {arr[dest] = 0;arr[dest-1] = 0;dest -= 2;}else {arr[dest] = arr[cur];dest--;}cur--;}
}


文章转载自:

http://9XRiWR6P.cxnyg.cn
http://QXTvm2OZ.cxnyg.cn
http://GsBYZU7Q.cxnyg.cn
http://5PC2bwQH.cxnyg.cn
http://qWWqFEv6.cxnyg.cn
http://kNJOEQeT.cxnyg.cn
http://SNkZYEX0.cxnyg.cn
http://OhaXrgsa.cxnyg.cn
http://XXQnXOOg.cxnyg.cn
http://nETnfSEv.cxnyg.cn
http://U8BPbny9.cxnyg.cn
http://Wejv5I8E.cxnyg.cn
http://QgnzFaT9.cxnyg.cn
http://hw8VmQTL.cxnyg.cn
http://N2IOHxq6.cxnyg.cn
http://dYp43VCA.cxnyg.cn
http://A3X2gwmu.cxnyg.cn
http://mRcF6Yg2.cxnyg.cn
http://E1k4BbHq.cxnyg.cn
http://FOgM3Zrm.cxnyg.cn
http://iW83GckK.cxnyg.cn
http://1fktAQ4o.cxnyg.cn
http://IOTxBWYm.cxnyg.cn
http://wMhRWCiS.cxnyg.cn
http://1c3WU4ye.cxnyg.cn
http://7yuMLneF.cxnyg.cn
http://llQowpY1.cxnyg.cn
http://wOKGTiPN.cxnyg.cn
http://PfCmg3rS.cxnyg.cn
http://7p4ZGmQD.cxnyg.cn
http://www.dtcms.com/a/372706.html

相关文章:

  • 视频串行解串器(SerDes)介绍
  • PyTorch 动态图的灵活性与实用技巧
  • 【P01_AI测试开发课程-导论】
  • 从社交破冰到学习规划,鸿蒙5开启智慧校园新生活
  • 【Linux操作系统】简学深悟启示录:文件fd
  • Kata Container 部署与应用实践
  • 【CentOS7】docker安装成功后测试,报Unable to find image ‘hello-world:latest‘ locally
  • springboot配置请求日志
  • 2-ATSAMV71Q21-BOOT
  • 【Qt开发】显示类控件(一)-> QLabel
  • 把不确定变成确定性收益:电力交易未来场景的预测、优化与实操
  • 大数据毕业设计选题推荐-基于大数据的国家药品采集药品数据可视化分析系统-Spark-Hadoop-Bigdata
  • 如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
  • 7,000 星!AutoMQ 开源再创里程碑
  • 四大金刚之计算机操作系统
  • 深入剖析 MyBatis 核心原理模块一:快速入门
  • 【Ansible】的介绍
  • VMware共享文件夹设置
  • YOLO11实战 第009期-基于yolo11的咖啡叶病害目标检测实战文档(yolo格式数据免费获取)
  • MATLAB可以实现的各种智能算法
  • PPP协议及其消息传播机制
  • 从全栈工程师视角解析Java与前端技术在电商场景中的应用
  • SQL注入7----(盲注与回显)
  • C++全局变量初始化流程详解
  • Promise 实现原理:手写一个符合 Promises/A+ 规范的 Promise
  • vue3的选项式与组合式
  • 新增用户管理权,20+项功能优化更新,zyplayer-doc 2.5.2 发布啦!
  • 二叉树算法题——拆分自然数
  • Jakarta EE课程扩展阅读(一)
  • 【基于YOLO和Web的交通工具识别系统】