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)        
            
相关推荐
biter down1 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
小欣加油1 小时前
leetcode56 合并区间
c++·算法·leetcode·职场和发展
lqqjuly1 小时前
前沿算法深度解析(二)
人工智能·算法·机器学习
肖永威3 小时前
Python多业务并行计算框架插件化演进:从硬编码到动态注册
python·插件化·并行计算·动态注册
yz_aiks3 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
徐小夕3 小时前
万字长文!千万级文档 RAG 知识库系统落地实践
前端·算法·github
不知名的老吴3 小时前
线程的生命周期之线程“插队“
java·开发语言·python
akunkuntaimei3 小时前
2026年高考数学各省真题及答案(完整版)
算法·高考
Hello:CodeWorld4 小时前
C 风格变参 vs C++ 变参模板:核心区别与选型指南
c语言·c++·算法
xsc6996754 小时前
从零搭建大模型与智能体平台 - 完整技术详解
python