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

相关推荐
Vcaker3 分钟前
Linux学习33-HPA动态扩缩容及k8s调度策略
linux·运维·学习
yi0118 分钟前
LeetCode 134 加油站:从 双循环暴力 演变到 贪心
linux·算法·leetcode
知识分享小能手16 分钟前
C++ 学习教程,从入门到精通,C++内存模型和名称空间 — 详细知识点总结(9)
开发语言·c++·学习
sogw-三叶草️19 分钟前
LeetCode 989. 数组形式的整数加法
数据结构·算法
AOI小白新手上路31 分钟前
韦东山《ARM 架构与编程》3-2 GPIO 引脚操作方法概述 · 学习笔记
arm开发·学习·架构
维克兜率天1 小时前
【维克】均值回归:跌多了会涨,涨多了会跌
开发语言·笔记·python·算法·均值算法·回归·量化
zhangrelay1 小时前
ROS2 Lyrical实验5导航Nav2
linux·笔记·学习·ubuntu·机器人
yi0111 小时前
DAY 14: LeetCode 394. 字符串解码|递归和栈到底怎么处理嵌套?
数据结构·笔记·python·算法·leetcode
JWASX1 小时前
Java 转 go 学习 - 基本语法
学习·golang
P.D.Wei1 小时前
[Leetcode 1614] 括号的最大嵌套深度
算法·leetcode·职场和发展