题目见这里
我的答案
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
if nums == []:
return nums
p = 0
q = len(nums) -1
while p < q:
if nums[p] == 0:
if nums[q] != 0:
nums[p],nums[q] = nums[q],nums[p]
else:
q -= 1
else:
p += 1
nums = self.quickSort(nums[:p]) + nums[p:]
print nums
def quickSort(self,L):
if L == []:
return []
label = L[0]
return self.quickSort([num for num in L[1:] if num <= label]) + [label]+self.quickSort([num for num in L[1:] if num > label])
简单的想法是先将所有为0的元素交换,再用快速排序将不为0的排序,在python2.7下可以通过,但是不知道为什么上传代码不成功