POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

LeetCode 283: Solución Move Zeroes en JavaScript

## LeetCode 283 Move Zeroes en JavaScript: Solución eficiente y explicada

Publicado el 19/08/2025

Leetcode 283 Move Zeroes Solucion en JavaScript

Problema: Dado un arreglo de enteros nums, desplazar todos los ceros al final manteniendo el orden relativo de los elementos no cero. La implementacion debe ser in place sin crear una copia del arreglo.

Concepto in place: Un algoritmo in place modifica el arreglo original directamente usando solo unas pocas variables extras de espacio constante. Esto es clave en estructuras de datos y algoritmos porque reduce el uso de memoria.

Ejemplo: si tienes el arreglo [5,0,1,9,0,6] el resultado esperado es [5,1,9,6,0,0].

Enfoque: Una solucion inicial usa dos bucles anidados que cada vez que encuentra un cero lo intercambia hacia la derecha hasta el final. Esa version funciona pero es ineficiente con complejidad temporal O(n²). La version optimizada emplea el patron de dos punteros.

Metodo de dos punteros: Un puntero pointer1 mantiene la posicion donde debe colocarse el siguiente elemento no cero. El puntero i recorre cada elemento del arreglo. Cuando nums[i] es distinto de cero intercambiamos nums[pointer1] con nums[i] y avanzamos pointer1. Al final todos los no ceros quedan a la izquierda en su orden original y todos los ceros a la derecha.

Solucion 1 implementacion con bucles anidados:

const moveZeroes = (nums) => { if(nums.length === 1){ return nums; } for (let j = 0; j < nums.length; j++) { for (let i = 0; i < nums.length - 1; i++) { if (nums[i] === 0) { [nums[i], nums[i + 1]] = [nums[i + 1], nums[i]]; } } } return nums; };

Esta version realiza intercambios repetidos y su coste temporal es O(n²).

Solucion 2 implementacion con dos punteros optimizada:

const moveZeroes = (nums) => { let pointer1 = 0; for (let i = 0; i < nums.length; i++) { if (nums[i] !== 0) { [nums[pointer1], nums[i]] = [nums[i], nums[pointer1]]; pointer1++; } } return nums; };

Explicacion paso a paso de la version optimizada usando el arreglo ejemplo [4,1,0,3,12]:

Paso 1: pointer1 inicia en 0. Al ver el primer valor 4 no es cero, lo colocamos en la posicion pointer1 0, se intercambia consigo mismo, pointer1 pasa a 1.

Paso 2: el valor 1 no es cero, se coloca en index 1, pointer1 pasa a 2.

Paso 3: el valor 0 es cero, se omite y pointer1 sigue en 2.

Paso 4: el valor 3 no es cero, se intercambia con la posicion pointer1 2 resultando en [4,1,3,0,12], pointer1 pasa a 3.

Paso 5: el valor 12 no es cero, se intercambia con la posicion pointer1 3 resultando en [4,1,3,12,0], pointer1 pasa a 4. Resultado final [4,1,3,12,0].

Complejidad: La version con dos punteros recorre el arreglo una unica vez y su complejidad temporal es O(n). Ambas soluciones usan espacio extra constante O(1), pero la version optimizada es mucho mas eficiente para arreglos grandes.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software que crea aplicaciones a medida y software a medida para empresas de todos los tamaños. Somos especialistas en inteligencia artificial e implementamos soluciones de ia para empresas, agentes IA y automatizacion para optimizar procesos. Tambien ofrecemos servicios de ciberseguridad para proteger datos y sistemas, servicios cloud aws y azure para desplegar aplicaciones escalables y resilientes, y servicios inteligencia de negocio como power bi para convertir datos en decisiones accionables. Nuestra experiencia abarca desarrollo de aplicaciones moviles y web, integracion de modelos de inteligencia artificial, arquitecturas seguras y consultoria en servicios cloud.

Contacta con Q2BSTUDIO para desarrollar tu proximo proyecto de aplicaciones a medida o software a medida, potenciar tu estrategia con inteligencia artificial, asegurar tu entorno con ciberseguridad, migrar a servicios cloud aws y azure o aprovechar servicios inteligencia de negocio y power bi.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio