283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
class Solution:
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
i = 0
// 统计0的数量
num_zero = nums.count(0)
cnt_zero = 0
// 当零的数量达到后停止
while cnt_zero < num_zero:
if nums[i] == 0: //当前数是0时,弹出并压到最后,nums[i]变成下一个元素
cnt_zero += 1
nums.pop(i)
nums.append(0)
else:
i += 1