283. 移动零

labuladong 题解思路

难度简单

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

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

 

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]
输出: [0]

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        l = r = 0
        n = len(nums)
        while r < n:
            if nums[r] != 0:
                nums[l] = nums[r]
                l+=1
            r+=1
        for i in range(l,n):
            nums[i] = 0
        

 





class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        j = 0
        for n in nums:
            if n != 0:
                nums[j] = n
                j+=1
        for i in range(j,len(nums)):
            nums[i] = 0
        
        

 

 

 

 
posted @ 2023-05-24 00:05  乐乐章  阅读(3)  评论(0编辑  收藏  举报