whatsapp sharing button Contacto youtube sharing button Canal instagram sharing button Contacto facebook sharing button Contacto email sharing button Contacto

Ordenar colores

LeetCode Español
Java | Python | PHP | C++ | JavaScript

En este blog, te enseñaré cómo resolver el ejercicio Ordenar colores de la plataforma LeetCode en Java, Python, PHP, C++ y JavaScript en español.

En esta guía, aprenderás a:

✅ Una explicación del problema
✅ Una solución eficiente
✅ Implementaciones en Java, Python, PHP, C++ y JavaScript

Este ejercicio se encuentra en la plataforma de LeetCode como "Sort Colors".

                       

Problema

Dado una array nums con n objetos de color rojo, blanco o azul, ordénelos de tal forma que los del mismo color sean adyacentes, con los colores en el orden rojo, blanco y azul. Los números 0, 1 y 2 representan el color rojo, blanco y azul, respectivamente y debe resolver este problema sin utilizar la función sort. sort-colors-leetcode-espanol

Pasos para realizar el algoritmo:

1.- Se crea un array numeros de tamaño 3. Este array se utilizará para almacenar la cantidad de veces que aparece cada número (0, 1 o 2) en el array original nums. 2.- Se recorre el array original nums y en cada iteración, se incrementa el valor en la posición num del array numeros. 3.- Se recorre el array numeros. En cada iteración, se verifica si el valor evaluado es mayor que 0. Si es así, se ejecuta la siguiente secuencia: ✅ Asigna el valor actual de j (que representa el número) al elemento i del array nums. ✅ Decrementa el valor en la posición j del array numeros. ✅ Incrementa el valor de i.

Presentación




Código en Java

public class Solution {
     
        public void sortColors(int[] nums) {
     
            //paso#1
            int[] numeros = new int[3];
     
            //paso#2
            for (int num : nums) numeros[num]++;
     
            //paso#3
            int i = 0;
            for (int j = 0; j < 3; j++) {
                while (numeros[j] > 0) {
                    nums[i] = j;
                    numeros[j]--;
                    i++;
                }
            }
        }
    }
     



Código en php

class Solution {
 
    public function sortColors(array &$nums) {
 
        $colores = array_fill(0, 3, 0);
 
        foreach ($nums as $num) $colores[$num]++;
 
        $i = 0;
        for ($j = 0; $j < 3; $j++) {
            while ($colores[$j] > 0) {
                $nums[$i] = $j;
                $colores[$j]--;
                $i++;
            }
        }
    }
}



Código en Python

class Solution(object):
    def sortColors(self, nums):
        colores = [0] * 3
 
        for num in nums:
            colores[num] += 1
 
        i = 0
        for j in range(3):
            while colores[j] > 0:
                nums[i] = j
                colores[j] -= 1
                i += 1



Código en C++

class Solution {
public:
    void sortColors(vector<int>& nums) {
        int colores[3] = {0};
 
        for (int i = 0; i < nums.size(); i++) colores[nums[i]]++;
 
        int i = 0;
        for (int j = 0; j < 3; j++) {
            while (colores[j] > 0) {
                nums[i] = j;
                colores[j]--;
                i++;
            }
        }
    }
};



Código en JavaScript

var sortColors = function(nums) {
    const colores = new Array(3).fill(0);
 
    for (const num of nums) {
        colores[num]++;
    }
 
    let i = 0;
    for (let j = 0; j < 3; j++) {
        while (colores[j] > 0) {
            nums[i] = j;
            colores[j]--;
            i++;
        }
    }
};
        
    

Conclusión

En este blog, hemos visto cómo realizar el ejercicio Ordenar colores en Java, Python, PHP, C++ y JavaScript. Hemos visto ejemplos de código en cada lenguaje de programación.
Foto de perfil

Autor: Hermes Sanchez
Fecha: 7 feb 2024


Artículos Relacionados