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 左侧,剩余位置自动补零

相关推荐
醉城夜风~15 分钟前
手撕 C++ string:从零实现一个简易字符串类
开发语言·c++·算法
手写码匠22 分钟前
华为云Flexus+DeepSeek征文|DeepSeek+RAG知识库实战:基于Flexus X实例与Dify构建企业级智能问答系统
人工智能·深度学习·算法·aigc
minglie11 小时前
蚂蚁S9矿板PS 内核定时器驱动
学习
zander2581 小时前
LeetCode 46. 全排列
算法·leetcode·深度优先
你想知道什么?1 小时前
决策树-学习笔记
笔记·学习·决策树
MartinYeung51 小时前
[论文学习]WASP:面向提示注入攻击的Web代理安全性基准测试
前端·网络·学习
懒狗跑ai的程序员Brain2 小时前
如何利用粒子系统在unity制作一个烟花(粒子系统学习向)
学习·unity·游戏引擎
念何架构之路2 小时前
moby-BuildKit(builder-next)
学习·docker·容器
惠惠软件2 小时前
快速生成磁盘目录文件-双击运行a.bat ,可以看到磁盘目录下出现了 文件目录.txt-供大家学习研究参考
windows·学习·文件列表
星恒随风2 小时前
C++ STL 详解:set 与 multiset 的使用、区间查询和算法应用
开发语言·c++·笔记·学习·算法