news 2026/6/16 10:15:14

算法:2.复写零

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法: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--; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 23:02:30

远程协作新选择:Excalidraw实时白板使用全攻略

远程协作新选择&#xff1a;Excalidraw实时白板使用全攻略 在分布式团队成为常态的今天&#xff0c;一场线上会议中&#xff0c;工程师对着文档逐字解释架构逻辑&#xff0c;产品经理反复澄清流程节点——这样的场景并不陌生。信息传递的损耗、表达方式的局限&#xff0c;常常让…

作者头像 李华
网站建设 2026/6/14 1:28:29

Excalidraw家电安装指南:图文步骤说明

Excalidraw家电安装指南&#xff1a;图文步骤说明 在售后服务一线&#xff0c;你是否经常听到用户抱怨&#xff1a;“说明书看了三遍还是不会装&#xff1f;”“这个水管到底接哪个口&#xff1f;”——传统的家电安装文档大多依赖文字描述和静态照片&#xff0c;信息密度高但理…

作者头像 李华
网站建设 2026/6/16 2:12:26

Excalidraw服务蓝图:客户体验全流程拆解

Excalidraw服务蓝图&#xff1a;客户体验全流程拆解 在一场远程产品评审会上&#xff0c;团队成员正围坐在虚拟白板前。产品经理用语音输入&#xff1a;“画一个用户注册流程&#xff0c;包含手机号验证和邮箱确认。”话音刚落&#xff0c;几秒钟内&#xff0c;一张结构清晰的手…

作者头像 李华
网站建设 2026/6/15 6:44:48

Excalidraw商业用途合规性:企业使用的法律风险

Excalidraw商业用途合规性&#xff1a;企业使用的法律风险 在数字化转型加速的今天&#xff0c;技术团队对协作工具的需求早已超越“能画图”的基本功能。越来越多的企业开始关注数据主权、系统可控性和长期成本——尤其是在绘制系统架构图、业务流程图这类敏感文档时&#xf…

作者头像 李华
网站建设 2026/6/9 22:01:41

ExcalidrawUI原型设计:低保真到高保真过渡

Excalidraw&#xff1a;从草图到高保真的智能协作设计演进 在一场远程产品评审会上&#xff0c;团队成员正围绕一个模糊的手绘框图激烈讨论。有人用红色箭头圈出逻辑断层&#xff0c;另一人拖动组件调整层级&#xff0c;而第三位则输入一句“把用户认证模块移到左侧&#xff0c…

作者头像 李华