这里使用双指针法,快慢指针。
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
# 快指针 一直加1
z = 0 # 我本来指定为1 但是如果输入的长度为2 那列表中两个数会直接进行交换,所以需要写成0
# 慢指针 只有交换才 加1
y = 0
l = len(nums)
# 循环停止条件是:慢指针 不小于 数组长度
while z < l:
# 快指针 不等于0时
if nums[z] != 0:
# 进行交换
nums[z], nums[y] = nums[y], nums[z]
# 慢指针 +1
y += 1
# 快指针 +1
z += 1