对于当前数组进行调整,不使用额外空间,那么既用双指针。
首先,两个指针都指向同一个位置,i=j=0,如果移动指针i的位置不为0则进行交换,固定指针+1,如果为0的话,固定指针不变,移动指针往后面移一直找。这样的话固定指针就会指在0的位置,相当于移动指针遇到非0就和0进行交换。
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
i = j = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[j] , nums[i]= nums[i] , nums[j]
j += 1