LeetCode算法学习之移动0

完整代码实现:

java 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        //双指针法解决这个问题
        int slow = 0;
        for(int fast = 0;fast<nums.length;fast++){
            if(nums[fast] != 0){
                int temp = nums[slow];
                nums[slow] = nums[fast];
                nums[fast] = temp;
                slow++;
            }
        }
    }
}

关键步骤详解

  1. 初始化指针:

slow = 0,fast = 0

  1. 遍历数组(fast 移动):

如果 nums[fast] != 0:

交换 nums[slow] 和 nums[fast](将非零元素移到左侧)

slow++(慢指针右移,标记下一个非零位置)

如果 nums[fast] == 0:

跳过,fast 继续右移

  1. 结果:

所有非零元素被移动到 slow 左侧,剩余位置自动补零

相关推荐
休息一下接着来5 分钟前
C++ 固定容量环形队列实现
c++·算法
ErizJ11 分钟前
Redis|学习笔记
redis·笔记·学习
加油201933 分钟前
方法论:如何系统性的学习?
学习·学习方法·方法论
im_AMBER37 分钟前
手撕hot100之矩阵!看完这篇就AC~
javascript·数据结构·线性代数·算法·leetcode·矩阵
笨笨饿43 分钟前
#79_NOP()嵌入式C语言中内联汇编宏的抽象封装模式研究
linux·c语言·网络·驱动开发·算法·硬件工程·个人开发
小t说说1 小时前
科学素养培养:男孩女孩的不同“方程式”,真的有分性别学习平台?
学习
xian_wwq1 小时前
【学习笔记】变电保护、测控、安自、自动化系统概述
笔记·学习·保护
lizhihai_991 小时前
股市学习心得—商业航天10大核心材料供应商
大数据·人工智能·学习
泰勒朗斯1 小时前
rootflight学习笔记
笔记·学习
风萧萧19992 小时前
问答样例如何在RAG问答中使用?
算法