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)        
            
相关推荐
念越1 分钟前
从概念到实现:深入解析七大经典排序算法
java·算法·排序算法
咩咩不吃草2 分钟前
【HTML】核心标签与【Python爬虫库】实战指南
css·爬虫·python·html
shilei_c6 分钟前
qt qDebug无输出问题解决
开发语言·c++·算法
serve the people9 分钟前
python环境搭建 (七) pytest、pytest-asyncio、pytest-cov 试生态的核心组合
开发语言·python·pytest
秋深枫叶红10 分钟前
嵌入式C语言阶段复习——函数
c语言·数据结构·算法
java1234_小锋11 分钟前
分享一套不错的基于Python的Django宠物信息管理系统
开发语言·python·宠物
2401_8414956413 分钟前
【Web开发】基于Flask搭建简单的应用网站
后端·python·flask·视图函数·应用实例·路由装饰器·调试模式
We་ct14 分钟前
LeetCode 49. 字母异位词分组:经典哈希解法解析+易错点规避
前端·算法·leetcode·typescript·哈希算法
梵刹古音15 分钟前
【C语言】 数组函数与排序算法
c语言·算法·排序算法
胖咕噜的稞达鸭27 分钟前
算法日记:穷举vs暴搜vs深搜vs回溯vs剪枝--全排列
算法·深度优先·剪枝