给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
说明:
- 必须在原数组上操作,不能拷贝额外的数组。
- 尽量减少操作次数
输入: [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