1 Pass方案:
把0往前放,把2往后放。
class Solution(object):
def sortColors(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
p0 = 0
p2 = len(nums) - 1
cur = 0
while cur <= p2:
if nums[cur] == 0:
nums[cur] = nums[p0]
nums[p0] = 0
p0 += 1
elif nums[cur] == 2:
nums[cur] = nums[p2]
nums[p2] = 2
p2 -= 1
cur -= 1
cur += 1
return