Given an array
n objects colored red, white, or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white, and blue.
We will use the integers
2 to represent the color red, white, and blue, respectively.
You must solve this problem without using the library’s sort function.
Input: nums = [2,0,2,1,1,0] Output: [0,0,1,1,2,2]
Input: nums = [2,0,1] Output: [0,1,2]
n == nums.length
1 <= n <= 300
Follow up: Could you come up with a one-pass algorithm using only constant extra space?
class Solution: def sortColors(self, A: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ l = 0 r = len(A)-1 scan = 0 while scan<=r: if A[scan]==0: A[scan],A[l] = A[l],A[scan] l+=1 scan+=1 elif A[scan]==2: A[scan],A[r] = A[r],A[scan] r-=1 else: scan+=1 return(A)