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

相关推荐
流云鹤5 分钟前
2026牛客寒假算法基础集训营4(A B C I H F G)
算法
每天要多喝水9 分钟前
动态规划Day31:子序列长度1
算法·动态规划
lxl130716 分钟前
C++算法(3)二分算法
数据结构·c++·算法
随意起个昵称16 分钟前
Dijstra算法学习笔记
笔记·学习·算法
我命由我1234528 分钟前
Photoshop - Photoshop 工具栏(60)污点修复工具
ui·adobe·职场和发展·求职招聘·职场发展·课程设计·photoshop
lifallen29 分钟前
笛卡尔树 (Cartesian Tree)
java·数据结构·算法
ab15151731 分钟前
2.15完成105、106、110
数据结构·算法
Clarence Liu33 分钟前
用大白话讲解人工智能(5) SVM支持向量机:找一条“最宽的分隔线“
人工智能·算法·支持向量机
不想看见40444 分钟前
N-Queens -- 回溯法 -- 力扣101算法题解笔记
java·数据结构·算法
xuxianliang1 小时前
第152章 纲领的统一(悦儿)
算法·程序员创富