力扣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为待处理的数据

做法:

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;
            }
        }
    }
相关推荐
可编程芯片开发10 分钟前
基于电压电流双闭环控制的三相整流器系统simulink建模与仿真
算法
可编程芯片开发14 分钟前
基于ADRC自抗扰算法的UAV飞行姿态控制系统simulink建模与仿真
算法
学究天人19 分钟前
数学公理体系大全:第七章 连续统假设与力迫法简介
人工智能·算法·机器学习·数学建模·动态规划·图论·抽象代数
Keven_1124 分钟前
算法札记:SPFA什么时候用队列什么时候用栈
算法·spfa
:-)1 小时前
基础算法-选择排序
数据结构·算法·排序算法
浮沉9871 小时前
二分查找算法例题(一)
算法
退休倒计时1 小时前
【每日一题】LeetCode 17. 电话号码的字母组合 TypeScript
算法·leetcode·typescript
粘稠的浆糊1 小时前
[AtCoder - abc465_d ]X to Y题解
数据结构·c++·算法
鱼儿也有烦恼2 小时前
数据结构合集
算法·algorithm
兰令水2 小时前
hot100【acm版】【2026.7.11/12打卡-java版本】
java·开发语言·数据结构·算法·职场和发展