力扣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;
            }
        }
    }
相关推荐
云淡风轻~窗明几净3 小时前
角谷猜想与百度AI的对话dialog(原始稿)
人工智能·算法·机器学习·图论
小O的算法实验室4 小时前
ASOC,分层分数阶粒子群算法+无人机电场路径规划
算法
傅科摆 _ py4 小时前
链表力扣复习
数据结构·leetcode·链表
重生之小比特4 小时前
【算法拾光】二分查找|搜索插入位置 + x 的平方根
算法
智购科技自动售卖机厂家4 小时前
双摄像头方案F1-score只有0.85,排查发现是上下视角的融合逻辑写反了~YH
python·单片机·嵌入式硬件·算法·eclipse
凯瑟琳.奥古斯特5 小时前
OCR文字检测算法对比解析
开发语言·python·职场和发展
?abc!6 小时前
(动态规划+DFS)494. 目标和
算法·深度优先·动态规划
背景调查知识库6 小时前
职业背景调查中的职业事实与主观评价分离如何判断?
职场和发展
信奥卷王6 小时前
[GESP202406 六级] 二叉树(含视频)
数据结构·算法
惊鸿一博6 小时前
Plücker直线_ 用两个三维向量描述一条空间直线
线性代数·算法·直线·几何表示