每日一题力扣283

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

正解:

遍历数组,遇见0就弹出并且在数组后加0,由于数组长度会变化,所以重新定义idx,当有元素弹出后(从前往后遍历,弹出的是第一个元素),那么下一次继续遍历新第一个元素(i-z)(本来该遍历的位置减去(弹出的个数))

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        z=0
        for i in range(len(nums)):
            idx=i-z
            if nums[idx]==0:
                nums.pop(idx)
                nums.append(0)
                z+=1
        return nums
原文地址:https://www.cnblogs.com/liuxiangyan/p/14455452.html