题目:
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入:[0,1,0,3,12]
输出:[1,3,12,0,0]
说明:
- 必须在原数组上操作,不能拷贝额外的数组。
- 尽量减少操作次数。
参考解答:
https://blog.youkuaiyun.com/qq_34364995/article/details/80699759
思路是,遍历,删除碰到的0,同时在末尾补对应的0.
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
j = 0
i = 0
while j < len(nums):
if nums[i] == 0:
#nums = nums[:i] + nums[i+1:] + [0]这句话运行结果和IDE中运行不符
del nums[i]
nums.append(0)
else:
i = i + 1
j = j + 1