方法1:
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
length = len(nums)
for i in range(length):
if nums[i] == 0:
nums.remove(nums[i])
nums.append(0)
print nums
Sol = Solution()
Sol.moveZeroes([0,1,0,3,0,0,5])
方法2:
def moveZeroes(self, nums):
zero = 0 # records the position of "0"
for i in xrange(len(nums)):
if nums[i] != 0:
nums[i], nums[zero] = nums[zero], nums[i]
zero += 1
0,方法2效率更高
1,在方法1中,主要是使用到了remove的方法来对列表中的元素进行删除操作。
具体remove和pop的使用方法见:pop和remove的使用方法
2,方法2是基于比较的办法,类似于冒泡排序的思想,但是不是排序,而是直接记录0元素所在的位置,并进行与非0元素的位置的交换。