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

力扣100-移动0

方法1 双指针、

在这里插入图片描述

代码1

public  void  moveZeroes(int[] nums) {//给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。////请注意 ,必须在不复制数组的情况下原地对数组进行操作。/* 双指针协作:slow 指针:指向下一个非零元素应放置的位置。fast 指针:遍历数组,寻找非零元素。两次遍历:第一次遍历:将所有非零元素按原顺序移动到数组前部。第二次遍历:将 slow 指针之后的位置全部置为零。*/int slow = 0;int fast =0 ;for(int i = 0 ; i < nums.length;i++){//1.快指针寻找非零元素//2.慢指针指向下一个非零元素应放置的位置
//            int[] nums = {0, 1, 0, 3, 12};while(fast< nums.length ){if(nums[fast] != 0){nums[slow] =nums[fast];// 复制非零元素到慢指针位置slow++;}fast++;}//进行补0while(slow<nums.length){nums[slow]=0;slow++;}}}

代码优化

 public void moveZeroes(int[] nums) {//还是一种双指针思路,只是简化了部分代码int i =0;for(int j =0 ;j<nums.length;j++){if(nums[j]!= 0 ){//非零元素进行交换int temp = nums[j];nums[j]=  nums[i];nums[i]=temp;i++;}}}

方法二 把 nums 当作栈

//用一个栈记录非零元素。
//入栈就是把 nums[stackSize] 置为 nums[i],同时把 stackSize 加一。//最后把 nums 中的下标从 stackSize 到 n−1 的数都置为 0。public void moveZeroes(int[] nums) {int stackSize = 0; for(int x : nums){if(x != 0){nums[stackSize++] =x;}}Arrays.fill(nums,stackSize,nums.length,0);}
http://www.xdnf.cn/news/12436.html

相关文章:

  • Jmeter如何进行多服务器远程测试?
  • Podman 和 Docker
  • 关于如何使用VScode编译下载keil工程的步骤演示
  • BugKu Web渗透之网站被hei(仅仅是ctf题目名称)
  • Three.js中AR实现详解并详细介绍基于图像标记模式AR生成的详细步骤
  • CSS中justify-content: space-between首尾贴边中间等距(两端元素紧贴左右边缘,中间元素等距均匀分布)
  • NLP学习路线图(二十七):Transformer编码器/解码器
  • 传输层:udp与tcp协议
  • 分布式微服务系统架构第144集:FastAPI全栈开发教育系统
  • 基于 Vue 和 Spring Boot 实现滑块验证码的机器验证
  • Linux编程:1、文件编程
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月6日第100弹
  • pdf2zh 简明本地部署和api调用,以及离线部署总结
  • 行业案例 | ASOS 借助 Azure AI Foundry(国际版)为年轻时尚爱好者打造惊喜体验
  • 在Windows下利用LoongArch-toolchain交叉编译Qt
  • QuaggaJS用法详解
  • 分布式协同自动化办公系统-工作流引擎-流程设计
  • aardio 简单网页自动化
  • 命令行以TLS/SSL显式加密方式访问FTP服务器
  • 应用分享 | 精准生成和时序控制!AWG在确定性三量子比特纠缠光子源中的应用
  • http头部注入攻击
  • MySQL基础(二)SQL语言、客户端工具
  • 中国首套1公里高分辨率大气湿度指数数据集(2003~2020)
  • 服务器健康摩尔斯电码:深度解读S0-S5状态指示灯
  • ADI的BF609双核DSP怎么做开发,我来说一说(五)LAN口测试
  • 在.NET Core控制器中获取AJAX传递的Body参数
  • 【行驶证识别成表格】批量OCR行驶证识别与Excel自动化处理系统,行驶证扫描件和照片图片识别后保存为Excel表格,基于QT和华为ocr识别的实现教程
  • AI大模型学习三十三、HeyGem.ai 服务端(ubuntu)docker 安装 /客户端(win)分离部署
  • 【Linux】虚拟机代理,自动化脚本修改~/.bashrc
  • GAN生成模型评价体系:从主观感知到客观度量的技术演进