力扣283:移动零(JAVA)

题目描述:

意思是将所有0移到最后的同时其余非0元素位置仍然不变

如 1 2 0 5 2 0 经过移动零后变为 1 2 5 2 0 0

思路:使用双指针的思路来写

fast:从左往右遍历数组

slow:非零元素最后的一个位置

将数组分为3个区间

0,slow\]为处理好的非0数据,slow永远指向最后一个非0数据 \[slow+1,fast\]处理好的为0的数据 \[fast+t,arr.length-1\]为待处理的数据 ![](https://file.jishuzhan.net/article/1728280083463933953/bd63bf8a6be7b8446c8e1ed50e11576e.webp) 做法: 1.fast遇到0元素:fast++ 2.fast遇到非0元素:slow++,然后交换数据,最后fast++ ```java public void moveZeroes(int[] nums) { int fast = 0; int slow = -1; for(fast = 0; fast < nums.length; fast++){ if(nums[fast] != 0){ slow++; // 交换数据 int tmp = nums[slow]; nums[slow] = nums[fast]; nums[fast] = tmp; } } } ```

相关推荐
木二_6 分钟前
056.Kubernetes cert-manager Root CA自签实战
算法·容器·kubernetes
老赵聊算法、大模型备案7 分钟前
网信办公示 2026 年 1-2 月生成式 AI 备案登记情况:新增 94 款,累计突破 1200 款
人工智能·算法·安全·aigc
x_xbx13 分钟前
LeetCode:21. 合并两个有序链表
算法·leetcode·链表
2501_9454235413 分钟前
C++与Rust交互编程
开发语言·c++·算法
我能坚持多久16 分钟前
【初阶数据结构10】——链式二叉树的功能实现
数据结构·算法
June bug23 分钟前
ISTQB CT-GenAI v1.0 K1/K2/K3 考点清单
经验分享·职场和发展·学习方法
tankeven23 分钟前
HJ131 数独数组
c++·算法
liuyao_xianhui23 分钟前
优选算法_丢失的数字_位运算_C++
linux·数据结构·c++·算法·动态规划·哈希算法·散列表
woniu_buhui_fei24 分钟前
Java 服务最常见的线上性能故障
java·jvm·算法
sali-tec27 分钟前
C# 基于OpenCv的视觉工作流-章37-区域截图
图像处理·人工智能·opencv·算法·计算机视觉