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

相关推荐
LYFlied11 小时前
【每日算法】LeetCode 279. 完全平方数(动态规划)
前端·算法·leetcode·面试·动态规划
scx2013100412 小时前
20251201换根DP总结
算法·动态规划·换根dp
zd20057212 小时前
STREAMS指南:环境及宿主相关微生物组研究中的技术报告标准
人工智能·python·算法
TechNomad12 小时前
排序算法:基数排序算法
算法·排序算法
努力学算法的蒟蒻12 小时前
day43(12.24)——leetcode面试经典150
算法·leetcode·面试
jianfeng_zhu12 小时前
二叉树的一些基本运算
算法
元亓亓亓12 小时前
LeetCode--279. 完全平方数--中等
算法·leetcode·动态规划
TimberWill12 小时前
哈希-03-字母异位词分组
算法·哈希算法
轻微的风格艾丝凡12 小时前
matlab推导QPR离散公式并验证
算法·matlab·谐振
岁岁的O泡奶13 小时前
NSSCTF_crypto_[SWPU 2020]happy
经验分享·python·算法·密码学