news 2026/9/2 21:32:04

算法: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/9/2 18:18:36

Excalidraw状态机可视化:软件设计新模式

Excalidraw状态机可视化&#xff1a;软件设计新模式 在一次远程架构评审会议中&#xff0c;团队正为一个复杂的订单流程争论不休。产品经理指着PPT上的UML图说&#xff1a;“这里用户支付失败后应该能重试三次&#xff0c;而不是直接取消。”开发却回应&#xff1a;“代码里确…

作者头像 李华
网站建设 2026/9/2 18:02:13

Excalidraw情绪日记:心理状态趋势观察

Excalidraw情绪日记&#xff1a;心理状态趋势观察 在心理咨询室的角落&#xff0c;一张手绘的情绪变化图贴在墙上——线条歪斜、颜色斑驳&#xff0c;却真实记录着来访者一周以来的情绪起伏。这种朴素的表达方式&#xff0c;正被数字工具重新诠释。如今&#xff0c;越来越多的人…

作者头像 李华
网站建设 2026/9/1 14:45:41

Excalidraw车辆维修手册:故障排查流程图

Excalidraw车辆维修手册&#xff1a;故障排查流程图 在一家连锁汽修厂的早会上&#xff0c;一名新技师面对“发动机无法启动”的工单显得手足无措。老师傅递给他一张泛黄的手写流程图&#xff0c;边画边讲&#xff1a;“先看电瓶&#xff0c;再听马达声……”这样的场景每天都在…

作者头像 李华
网站建设 2026/9/1 8:36:00

Excalidraw商业模式画布:创业团队战略讨论

Excalidraw&#xff1a;当手绘白板遇上AI&#xff0c;创业团队如何重塑战略协作&#xff1f; 在一场深夜的远程会议中&#xff0c;四位分散在三个时区的创始人正试图敲定他们的产品架构。有人打开PPT&#xff0c;开始拖拽框框&#xff1b;有人发来一段文字描述&#xff1b;还有…

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

opencv和摄影测量坐标系的转换

1.相对定向的转换使用opencv的代码进行相对定向后&#xff0c;1&#xff09;首先把计算出来的三维点&#xff0c;y值变为负的y值&#xff0c;z值变为负的z值2&#xff09;把计算出来的RT&#xff0c;改造成T表示右相机中心在左相机的坐标&#xff0c;然后y值变为负的y值&#x…

作者头像 李华