Ordenar Colores
Dado un arreglo nums con n objetos coloreados de rojo, blanco, o azul, ordénalos directamente sobre el mismo arreglo, de modo que los objetos del mismo color estén adyacentes con los colores en el orden rojo, blanco y azul.
Se usarán los enteros 0, 1, y 2 para representar los colores rojo, blanco y azul respectivamente.
Resuelve este problema sin usar la función de ordenamiento de la biblioteca.
Ejemplos
Ejemplo 1:
Input: nums = [2,0,2,1,1,0] Output: [0,0,1,1,2,2]
Ejemplo 2:
Input: nums = [2,0,1] Output: [0,1,2]
Soluciones
class Solution:
def sortColors(self, nums: List[int]) -> None:
RED = 0
WHITE = 1
BLUE = 2
mid = 0
low = 0
high = len(nums) - 1
while mid <= high:
if nums[mid] == RED:
nums[low], nums[mid] = nums[mid], nums[low]
low += 1
mid += 1
elif nums[mid] == BLUE:
nums[mid], nums[high] = nums[high], nums[mid]
high -= 1
else:
mid += 1