题目
基本思路
这个题我居然没写出来,自己检讨一分钟。。。。
快排记得吧,不记得复习两分钟,然后看下代码就OK了。。。
实现代码
class Solution:
def sortColors(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
# 类似于快排的partition一步
if nums == []:
return []
left,right = 0,len(nums)-1
i = 0
while i <= right:
if nums[i] == 0:
nums[i],nums[left] = nums[left],nums[i]
left += 1
i += 1
# 注意我们的整体思路是从左往右,然后从后面交换到前面的元素也需要重新接受检验
elif nums[i] == 2:
nums[i],nums[right] = nums[right],nums[i]
right -= 1
else:
i += 1