Categorías
Algorithms Interview

LeetCode – Ordenar colores (Java)

Dada una matriz con n objetos de color rojo, blanco o azul, ordénelos de manera que los objetos del mismo color estén adyacentes, con los colores en el orden rojo, blanco y azul.

Aquí, usaremos los números enteros 0, 1 y 2 para representar el color rojo, blanco y azul respectivamente.

Solución Java: ordenación por recuento

Podemos obtener el recuento de cada elemento y proyectarlos a la matriz original.

public void sortColors(int[] nums) {
    if(nums==null||nums.length<2){
        return;
    }
 
    int[] countArray = new int[3];
    for(int i=0; i<nums.length; i++){
        countArray[nums[i]]++;
    }
 
    int j = 0;
    int k = 0;
    while(j<=2){
        if(countArray[j]!=0){
            nums[k++]=j;
            countArray[j] = countArray[j]-1;
        }else{
            j++;
        }
    }
}

  Clasificación de problemas de algoritmo

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *