当前位置: 首页 > 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.rkmt.cn/news/132842.html

相关文章:

  • ExcalidrawAPI文档配图:接口调用流程展示
  • Day8 出现频率最高的字母 -卡码网C++基础课
  • 基于Java+SSM+SSM短剧推荐系统(源码+LW+调试文档+讲解等)/短剧推荐算法/短剧推荐平台/短剧推荐服务/短剧推荐模型/短剧智能推荐
  • Day2:语言数据类型和变量
  • Excalidraw思维导图玩法:结构化思考新工具
  • Excalidraw常见问题汇总:官方FAQ精华整理
  • 基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)
  • Excalidraw热力图模拟:用户行为分布示意
  • 递归算法和回溯算法
  • 跟着Datawhale动手学Ollama - TASK4: Ollama 在 LangChain 中的使用
  • 分层模糊系统:梯度下降与递推最小二乘法联合辨识研究(Matlab代码实现)
  • cesium126,240506,Ce for Ue 建筑单体高亮的实现P1-基础染色:
  • Excalidraw用户体验监控:前端性能指标采集
  • Excalidraw类图绘制:面向对象设计辅助
  • 基于Spring Boot技术的数字乡村农作物智慧管理系统设计毕设
  • A server error occurred. Please contact the administrator的问题解决
  • 基于Spring Boot的医院预约挂号系统的设计与实现毕业设计源码
  • PyTorch中通过设置随机种子使训练结果可复现
  • ExcalidrawOKR目标看板:团队目标对齐工具
  • 基于Spring Boot的在线考试系统设计与实现毕业设计
  • 2025年度绵阳高中复读学校口碑推荐榜单,名办高中/学校/实验中学/高中复读学校/中学/实验学校/高中高中复读学校企业怎么选择 - 品牌推荐师
  • 利用 SSI-COV 算法自动识别线状结构在环境振动下的模态参数研究(Matlab代码实现)
  • 精品UI知识付费系统源码 响应式视频教程知识付费软件下载网站模板
  • 基于Spring Boot的新生报到管理系统的设计与实现毕业设计源码
  • ATTCK实战系列(一)红日靶场1
  • Excalidraw CI/CD流水线搭建:代码变更自动部署
  • 蓝凌EKP产品:一次 Hibernate 乐观锁 + 死锁的深度踩坑实录
  • Excalidraw负载均衡配置:高并发场景下的稳定性保障
  • 基于Java+SpringBoot+SSM音乐推荐系统(源码+LW+调试文档+讲解等)/音乐推荐算法/音乐智能推荐/歌曲推荐系统/音乐个性化推荐/音乐播放推荐
  • springboot高校应届毕业生求职招聘系统vue_12wlz