题目283. 移动零

    思路:
    双指针思路。
    当我们遇到一个非零元素时,我们需要交换当前指针和慢速指针指向的元素,然后前进两个指针。
    如果它是零元素,我们只前进当前指针。
    时间复杂度:【LeetCode】283.移动零 - 图1, 空间复杂度:【LeetCode】283.移动零 - 图2

    1. class Solution:
    2. def moveZeroes(self, nums: List[int]) -> None:
    3. """
    4. Do not return anything, modify nums in-place instead.
    5. """
    6. lastnonzero = 0
    7. for cur_point, num in enumerate(nums):
    8. if num != 0:
    9. nums[lastnonzero], nums[cur_point] = nums[cur_point], nums[lastnonzero]
    10. lastnonzero += 1