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

算法:2.复写零

双指针

1089. 复写零 - 力扣(LeetCode)

解法思路:如图

虽然得到了正确答案,但从5下标开始复写是我们知道答案后看出来的。

但是我们从这知道只要能找到最后一个需要复写的数的下标就行了,因此我们构思出一个这样的代码:

cur和dest从0下标开始从前往后遍历原数组,只要cur遇到0,dest就向前移动2次,否则移动一次,直到dest>=nums.length-1就退出循环(注意,需要判断,如果dest==nums.length,dest=nums.length-1),这时cur也到达最后需要复写的下标。

cur和dest 位置均正确之后复写零问题思路也就结束了

代码实现:

public void duplicateZeros(int[] arr) { int cur=0; int dest=-1; while(dest<arr.length-1){ //找位置 if(arr[cur]==0){ dest+=2; }else{ dest+=1; } if(dest>=arr.length-1) break; cur++; } while(cur>=0){ if(dest==arr.length){ arr[dest-1]=0; dest-=2; } else{ if(dest>0){ if(arr[cur]==0){ arr[dest]=0; arr[dest-1]=0; dest-=2; }else{ arr[dest]=arr[cur]; dest-=1; } } } cur--; } }
http://www.jsqmd.com/news/120699/

相关文章:

  • UVM Driver踩坑实录:reset+mainPhase跑不通?runPhase为何能一招解决
  • MCP的应用
  • MCP的应用
  • 多源异构数据采集与融合应用综合实践
  • Excalidraw离线使用指南:无网络环境下的应对策略
  • 2025年最新盘点:十大高口碑棕刚玉定制服务商,磨料/棕刚玉/白刚玉/不锈钢灰/铬刚玉/黑碳化硅/精密铸造砂/碳化硅棕刚玉品牌排行榜单 - 品牌推荐师
  • 如何构建一个 OpenAI 兼容的 API
  • 笨人小白的温故知新——排序(3)
  • Day8 判断集合成员 -卡码网C++基础课
  • Excalidraw网格与参考线:辅助精确定位
  • opencv和摄影测量坐标系的转换
  • Excalidraw直线箭头样式:多种类型任你选
  • 【开源免费】基于 STM32的远程环境监测系统(环境数据的实时感知与远程监测)
  • ExcalidrawAPI文档配图:接口调用流程展示
  • Excalidraw商业模式画布:创业团队战略讨论
  • aws 配置导出的SSL证书
  • Excalidraw家庭教育计划:孩子成长路径设计
  • Excalidraw思维导图玩法:结构化思考新工具
  • CSAPP 异常控制流
  • 基于Java+SpringBoot+SSM高校科研管理系统(源码+LW+调试文档+讲解等)/高校科研管理平台/高校科研信息管理系统/高校科研项目管理系统/高校科研成果管理系统/高校科研数据管理系统
  • 3.7 分段 Segmentation
  • Excalidraw常见问题汇总:官方FAQ精华整理
  • 从人到人机再到人机环境:东西方思想的融合
  • 近两百万人围观的Karpathy年终大语言模型清单,主角是它们
  • Excalidraw鱼骨图绘制:根本原因分析法实践
  • Excalidraw暗黑模式设置:夜间使用的护眼方案
  • Excalidraw与AI结合前景:未来功能演进预测
  • 分层模糊系统:梯度下降与递推最小二乘法联合辨识研究(Matlab代码实现)
  • Excalidraw用户体验监控:前端性能指标采集
  • Excalidraw类图绘制:面向对象设计辅助