首先是两种python中简短精炼的方法:
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
for i in range(nums.count(0)):
nums.remove(0)
nums.append(0)
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
nums.sort(key=bool, reverse=True)
然后是一种利用快慢指针的方法,其本质是利用快指针寻找后面的非零元素赋给前面的慢指针所指位置,这样快指针遍历到最后的时候慢指针左边全部是列表中的非零元素,把慢指针后面全部赋值为零就行。
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
slow,fast = 0,0
while fast < len(nums):
if nums[fast] != 0:
nums[slow] = nums[fast]
slow += 1
fast += 1
while slow < len(nums):
nums[slow] = 0
slow += 1



