代碼以下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