问题内容
描述:
miaoshu给定一个数组 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.
"""
for j in range(nums.count(0)):
nums.remove(0)
nums.append(0)
//方法二(易读):
class Solution: def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
temp = []
j = 0
for i,item in enumerate(nums):
if item != 0:
temp.append(item)
c = len(temp)
for i in range(c):
nums[i] = temp[i]
// 方法二(效率):
class Solution: def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
j = 0
for i, item in enumerate(nums):
if item != 0:
if i != j:
nums[i], nums[j] = nums[j], nums[i]
j += 1
else:
j += 1
参考文档
[1]:https://blog.csdn.net/qq_17550379/article/details/80475808