给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
① 判断数组中的零元素,删除并在末尾添加。非零元素不做处理。
代码如下:
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
for i in nums[:]:
if i==0:
nums.append(0)
nums.remove(0)
② 利用索引号判断数组中不等于零的元素,将不等于零的元素依次存放在数组的 0,1,2,… 位置。
代码如下:
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
i = j = 0
for i in range(len(nums)):
# 将不等于零的元素依次与第一,第二。。。元素互换。
if nums[i] != 0:
nums[j] , nums[i]= nums[i] , nums[j]
j += 1