283. 移动零 快慢指针击败双百

283. 移动零

已解答

简单

相关标签

相关企业

提示

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

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

示例 1:

复制代码
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

复制代码
输入: nums = [0]
输出: [0]

提示:

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1

**进阶:**你能尽量减少完成的操作次数吗?

快慢指针

30min

java 复制代码
    public void moveZeroes(int[] nums) {
    int slowPoint = 0; // 慢指针,指向非零元素的位置
    // 遍历数组
    for (int fastPoint = 0; fastPoint < nums.length; fastPoint++) {
        if (nums[fastPoint] != 0) {
            // 交换慢指针和快指针的位置
            nums[slowPoint] = nums[fastPoint];
            slowPoint++;
        }
    }
    
    // 将剩余的位置填充为0
    for (int i = slowPoint; i < nums.length; i++) {
        nums[i] = 0;
    }
}
相关推荐
MobotStone1 小时前
Google发布Nano Banana 2:更快更便宜,图片生成能力全面升级
算法
颜酱4 小时前
队列练习系列:从基础到进阶的完整实现
javascript·后端·算法
用户5757303346244 小时前
两数之和:从 JSON 对象到 Map,大厂面试官到底在考察什么?
算法
程序猿追4 小时前
“马”上行动:手把手教你基于灵珠平台打造春节“全能数字管家”
算法
ZPC821020 小时前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC821020 小时前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
琢磨先生David20 小时前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
颜酱20 小时前
栈的经典应用:从基础到进阶,解决LeetCode高频栈类问题
javascript·后端·算法
多恩Stone20 小时前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
生信大杂烩20 小时前
癌症中的“细胞邻域“:解码肿瘤微环境的空间密码 ——Nature Cancer 综述解读
人工智能·算法