LeetCode 热题100-4

移动零

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

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= nums.length <= 10e4
  • -2e31 <= nums[i] <= 2e31 - 1

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

双指针的题目,用i,j 分别指向当前需要填入元素的位置遍历到的下一个非零元素的位置,遍历一遍后,将按照相对位置填入所有非零元素,剩余的位置补0即可

python 复制代码
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        i,j = 0,0
        length = len(nums)
        # i 为指向位置的idx
        while j<length:
            if nums[j]!=0:
                nums[i] = nums[j]
                j+=1
                i+=1
            else:j+=1
        while i<length:
            nums[i] = 0
            i+=1
        print (nums)        
            
相关推荐
爱coding的橙子6 小时前
每日算法刷题Day78:10.23:leetcode 一般树7道题,用时1h30min
算法·leetcode·深度优先
Swift社区6 小时前
LeetCode 403 - 青蛙过河
算法·leetcode·职场和发展
地平线开发者6 小时前
三种 Badcase 精度验证方案详解与 hbm_infer 部署实录
算法·自动驾驶
papership7 小时前
【入门级-算法-5、数值处理算法:高精度的减法】
算法·1024程序员节
lingran__7 小时前
算法沉淀第十天(牛客2025秋季算法编程训练联赛2-基础组 和 奇怪的电梯)
c++·算法
DuHz7 小时前
基于MIMO FMCW雷达的二维角度分析多径抑制技术——论文阅读
论文阅读·物联网·算法·信息与通信·毫米波雷达
MYX_3097 小时前
第四章 多层感知机
开发语言·python
盼哥PyAI实验室7 小时前
《Python爬虫 + 飞书自动化上传》全流程详细讲解
爬虫·python·飞书
Dragon_D.7 小时前
排序算法大全——插入排序
算法·排序算法·c·学习方法
大数据张老师8 小时前
数据结构——红黑树
数据结构·算法·红黑树