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

相关推荐
Acc1oFl4g4 分钟前
Java安全之SpEL表达式注入入门学习
java·学习·安全
珂朵莉MM4 分钟前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--碳中和
人工智能·算法
武哥聊编程5 分钟前
【从0带做】基于Springboot3+Vue3的生态养殖管理系统
java·学习·vue·毕业设计·springboot
良木生香7 分钟前
【数据结构-初阶】详解线性表(2)---单链表
c语言·数据结构·算法
牛三金7 分钟前
魔改-隐语PSI通信,支持外部通信自定义
服务器·前端·算法
菜鸟233号7 分钟前
力扣106 从中序与后序遍历序列构造二叉树 java实现
java·算法·leetcode
●VON10 分钟前
小V健身助手开发手记(一):启动即合规——实现隐私协议弹窗与用户授权状态管理
学习·华为·项目·openharmony·开源鸿蒙
YJlio11 分钟前
Active Directory 工具学习笔记(10.11):AdRestore 实战脚本与命令速查——从事故回滚到合规留痕
java·笔记·学习
Donald_wsn12 分钟前
牛客 栈和排序 C++
数据结构·c++·算法