代码以下python
class Solution: def sortColors(self, nums: List[int]) -> None: left = 0 #mid表示目前第一个1的位置,在len(nums)表示1还未出现 #加入1的操做,只用将mid-1,而后与left交换 mid = len(nums) #right表示目前第一个2的位置,在len(nums)表示第一个2还未出现 #加入2的操做,只用将right-1,而后与left交换 right = len(nums) #left是一个游标,不断交换,直到nums[left]=0 while left < mid: if nums[left] == 0: left += 1 elif nums[left] == 1: mid -= 1 temp = nums[left] nums[left] = nums[mid] nums[mid] = temp elif nums[left] == 2: right -= 1 temp = nums[left] nums[left] = nums[right] nums[right] = temp # 处理出现了2,可是还未出现1的状况 if mid > right: mid = right