力扣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; } } } ```

相关推荐
德索精密工业-胡工27 分钟前
M12连接器的增强技术:在高电磁干扰的车间里它是如何“活下来”的?
算法
ZenosDoron28 分钟前
函数形参传数组
java·jvm·算法
极客天成ScaleFlash28 分钟前
极客天成 NVFile 存算融合解决方案
算法·数据挖掘
Reisentyan38 分钟前
[杭电春季联赛5]1004 赛马
算法
雨墨✘44 分钟前
基于比较的三种排序算法:插入排序、合并排序和快排序
数据结构·算法·排序算法
故事和你911 小时前
洛谷-数据结构1-2-二叉树1
开发语言·数据结构·c++·算法·leetcode·动态规划·图论
xu_wenming1 小时前
手写数字识别项目教程
网络·算法
_日拱一卒1 小时前
LeetCode:19删除链表的倒数第N个节点
算法·leetcode·链表
AIoT科技物语1 小时前
免费开源!50+算法,Java基于YOLO框架的视频AI识别算法平台,适配低空无人机巡检、摄像头安防场景
java·人工智能·算法·yolo·开源
ん贤1 小时前
Go GC垃圾回收机制
算法·go·gc·垃圾回收