力扣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;
            }
        }
    }
相关推荐
阿坤带你走近大数据8 小时前
基金面试准备1
面试·职场和发展
小程故事多_8010 小时前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析
人工智能·算法
2601_9561219711 小时前
二分算法(知识点+题目)
c++·算法
AndrewHZ14 小时前
【LLM技术全景】阶段总结:技术原理篇核心知识回顾
人工智能·深度学习·算法·语言模型·大模型·llm·芯片开发
职场的momo15 小时前
五年后端终面被追问方案,技术输出该如何守边界
职场和发展
小星星闪亮登场15 小时前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
冻柠檬飞冰走茶15 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
玖玥拾16 小时前
LeetCode 88 合并两个有序数组
算法·leetcode
数据皮皮侠AI16 小时前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
小程故事多_8016 小时前
用GRPO算法重塑多智能体系统,从原理落地到复杂任务规划实战
人工智能·算法