移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

说明:

  1. 必须在原数组上操作,不能拷贝额外的数组。
  2. 尽量减少操作次数
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

代码:

思路:

思路有两种,为了不改变剩下数字的顺序,可以使用一个temp存放0然后将后面的数字往前移。但是我们用的是Python,有更好的解决方案,使用Pop() 将其弹出,再使用append() 将其追加回去。

关于del. remove. pop. 的区别

https://blog.csdn.net/deqiangxiaozi/article/details/75808863

class Solution(object):
    def moveZeroes(self, nums):
        """
        :type nums: List[int]
        :rtype: None Do not return anything, modify nums in-place instead.
        """
        count = len(nums) - 1
        i=0
        while(i<count):
            if nums[i] ==0:
                nums.pop(i)
                count-=1
                nums.append(0)
            else:
                i+=1
        return nums
原文地址:https://www.cnblogs.com/guangluwutu/p/10627068.html