1.定义一个变量index存放不为0的元素,从头到尾遍历数组,i移动到第一个不为0的元素时停下,把它放到index为0的位置上,说明第0个位置的元素找到了
2.index加一,i继续往后遍历到不为0的元素,再把它放到index=1的位置
3.一直到遍历到数组最后一个元素,说明所有非零元素都找到了,然后将此刻index以及以后的位置都置为0
伪代码:
index = 0
for(i = 0; i < nums.length; i++):
if nums[i] != 0
nums[index] = nums[i]
index = index + 1
for(i = index; i < nums.length; i++)
nums[i] = 0
Python代码:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
index = 0
for i in range(0, len(nums)):
if nums[i] != 0:
nums[index] = nums[i]
index = index + 1
for i in range(index, len(nums)):
nums[i] = 0