给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
python解法
开始不知道count方法,用最笨的方法都扫描了一遍列表,速度太慢.
用count方法可以计算出列表内有多少个0
remove方法是直接删除第一个匹配到的元素,删除后直接在列表后面追加0就行了.
这样比一开始的方法快多了
class Solution:
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
for i in range(0,len(nums)):
if(nums[i]==0):
nums.remove(0)
nums.append(0)
"""
j = nums.count(0)
for i in range(0,j):
nums.remove(0)
nums.append(0)