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.
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
publicclass Solution {publicvoid sortColors(int[] nums){//paso#1int[] numeros =newint[3];//paso#2for(int num : nums) numeros[num]++;//paso#3int 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 {publicfunction sortColors(array&$nums){$colores=array_fill(0,3,0);foreach($numsas$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] * 3for num in nums:
colores[num] +=1
i =0for j inrange(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 =newArray(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.