news 2026/10/15 7:45:01

算法: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/10/14 17:23:42

Excalidraw与Miro对比:谁更适合技术团队使用?

Excalidraw与Miro对比&#xff1a;谁更适合技术团队使用&#xff1f; 在分布式协作成为常态的今天&#xff0c;一个简单的系统架构讨论&#xff0c;可能涉及跨越三个时区的六位工程师。会议开始前五分钟&#xff0c;有人发来链接&#xff1a;“画布已建好&#xff0c;直接点开就…

作者头像 李华
网站建设 2026/10/14 12:38:16

ExcalidrawDIY项目计划:手工制作步骤分解

ExcalidrawDIY项目计划&#xff1a;手工制作步骤分解 在远程协作日益成为常态的今天&#xff0c;团队沟通中的“信息落差”问题愈发突出——设计师苦于无法快速表达脑中构图&#xff0c;产品经理担心技术实现偏离预期&#xff0c;而工程师则疲于在文字需求和视觉呈现之间反复对…

作者头像 李华
网站建设 2026/10/14 20:10:41

Excalidraw如何助力敏捷开发中的Sprint规划?

Excalidraw如何助力敏捷开发中的Sprint规划&#xff1f; 在一次典型的远程Sprint规划会议上&#xff0c;你是否经历过这样的场景&#xff1a;产品经理在共享屏幕上展示一张密密麻麻的PPT流程图&#xff0c;开发者皱着眉头追问“这个接口到底什么时候调用&#xff1f;”&#xf…

作者头像 李华
网站建设 2026/10/14 23:55:17

Excalidraw技术支持渠道:社区/论坛/Discord入口

Excalidraw技术支持渠道&#xff1a;社区/论坛/Discord入口 在远程协作成为常态的今天&#xff0c;团队对可视化工具的需求早已超越“画图”本身——我们需要的是能快速表达想法、激发创意火花&#xff0c;并支持多人实时参与的数字白板。Excalidraw 正是在这样的背景下脱颖而…

作者头像 李华
网站建设 2026/10/14 23:48:04

Excalidraw数字花园实践:渐进式笔记创作

Excalidraw与数字花园&#xff1a;让知识在草图中生长 在一场远程产品评审会上&#xff0c;团队卡在了系统架构的描述上。产品经理口述着“用户请求先经过网关&#xff0c;然后分流到认证服务和配置中心”&#xff0c;但文字越堆越多&#xff0c;沟通却越来越模糊。直到有人打开…

作者头像 李华