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 移动):

如果 numsfast != 0:

交换 numsslow 和 numsfast(将非零元素移到左侧)

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

如果 numsfast == 0:

跳过,fast 继续右移

  1. 结果:

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

相关推荐
传奇开心果编程5 分钟前
【Rust入门知识点学与练】第17课:闭包 Closures
开发语言·学习·rust
203号居民14 分钟前
LeetCode hot 100 — 25. K 个一组翻转链表
算法·leetcode·链表
今夜有雨.38 分钟前
C# 学习文档(零基础入门)
开发语言·学习·c#
ocean21031 小时前
2025-2026年AI算法与模型研发面试高频知识点洞察
人工智能·算法·面试
Nil2081 小时前
leetcode 78子集
数据结构·算法·leetcode
lifallen2 小时前
短暂 Agent 与持久化工程:让理解脱离对话
人工智能·学习·ai·重构·ai编程
知识分享小能手2 小时前
深度学习学习教程,从入门到精通,深度模型中的优化 — 完整知识点与代码案例(8)
人工智能·深度学习·学习
en.en..2 小时前
Linux fork() 工作原理
数据结构·算法
互联网叫兽2 小时前
redis深入学习二
数据库·redis·学习
地平线开发者3 小时前
bevformer算法模型详细解读
算法