leetcode283移动零元素

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = 0,1,0,3,12

输出: 1,3,12,0,0

示例 2:

输入: nums = 0

输出: 0

提示:

1 <= nums.length <= 104

-231 <= numsi <= 231 - 1

解题代码

java 复制代码
public static void main(String[] args) {
        MoveZeros moveZeros = new MoveZeros();
        int[] demo =  new int[] {0,1,0,3,12};
        moveZeros.removeZeros(demo);
        System.out.println(Arrays.toString(Arrays.stream(demo).toArray()));
    }
    public void removeZeros(int[] nums) {
        int slow = 0, fast = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == 0) {
                fast++;
            } else {
                nums[slow] = nums[i];
                fast++;
                slow++;
            }
        }
        for (int i = slow; i < fast; i++) {
            nums[i] = 0;
        }
    }
相关推荐
Billy121381 分钟前
Day12-C++20 Coroutines(上):协程原理与Promise/Awaitable机制
开发语言·c++进阶学习
01二进制代码漫游日记3 分钟前
C++基础入门速通
java·开发语言·c++
Herbert_hwt4 分钟前
第六章 Java深入理解接口、函数式接口与lambda表达式
java·开发语言·算法
API快乐传递者20 分钟前
电商竞品分析接口实战指南:从数据采集到决策洞察的全链路方案
java·python
橙橙笔记23 分钟前
C++的学习第三部分
开发语言·c++·学习
君君思密达28 分钟前
LeetCode Hot 100 题目详解-滑动窗口
算法·leetcode·职场和发展
程序员黑豆8 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
GreenTea9 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
风流 少年9 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅9 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试