Progreso Diario de LeetCode Día 17

Soluciones en Python y C++ para dos retos de LeetCode: Minimum Operations to Exceed Threshold Value I y Move Zeroes. Análisis de complejidad, enfoques in situ y con dos punteros.

viernes, 5 de septiembre de 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Problemas resueltos: #3065 Minimum Operations to Exceed Threshold Value I y #283 Move Zeroes

Progreso Diario LeetCode – Día 17. Hoy trabajé con dos retos de arreglos: contar cuántos elementos están por debajo de un umbral cuando se elimina repetidamente el mínimo global, y mover todos los ceros al final manteniendo el orden relativo.

Lo que aprendí: en el problema del umbral, la operación de quitar el mínimo fuerza a eliminar cada valor menor que k exactamente una vez, por lo que la respuesta es el conteo de valores con nums menor que k. En mover ceros, borrar en medio y empujar al final mantiene estabilidad y es in situ, pero puede costar O(n^2) frente a la alternativa óptima de dos punteros O(n). Ambos ejercicios refuerzan cómo traducir las reglas del enunciado a invariantes simples y medibles.

#3065 Minimum Operations to Exceed Threshold Value I

Idea clave: mientras exista algún elemento menor que k, ese será el mínimo global y deberá eliminarse una vez. Por tanto, el número mínimo de operaciones es exactamente la cantidad de elementos con valor menor que k. Se puede ordenar y contar hasta hallar el primer nums i mayor o igual que k o, más directo, contar en una sola pasada sin ordenar.

Complejidad: si ordenas, O(n log n) tiempo y O(1) espacio extra in situ. Si solo cuentas, O(n) tiempo y O(1) espacio.

#283 Move Zeroes

Estrategia in situ con borrar y empujar: al encontrar un cero, se desplaza al final y se borra de su posición actual, reduciendo el rango útil y manteniendo el orden de los no ceros. Es correcta y estable, pero cuesta O(n^2) en el peor caso por borrados en posiciones intermedias. Alternativa recomendada O(n): dos punteros que escriben los no ceros al frente y rellenan con ceros al final.

Logros del día: implementé el conteo de elementos bajo umbral en Python y C++ de forma clara y concisa, y demostré un movimiento de ceros estable y en sitio, junto con el contraste de complejidades.

Resumen de complejidad: mínimo para exceder umbral O(n log n) con ordenación y O(1) extra, o bien O(n) contando. Mover ceros O(n^2) con borrar y empujar y O(1) extra, o O(n) con dos punteros.

Aplicación práctica en producto: estas técnicas de optimización y estabilidad se vuelven críticas al diseñar aplicaciones a medida y software a medida con requisitos de rendimiento predecible. En Q2BSTUDIO construimos soluciones robustas donde la estructura de datos y la estrategia de recorrido importan tanto como la interfaz. Si buscas transformar una idea en una solución lista para producción, descubre cómo abordamos el ciclo completo en nuestro servicio de desarrollo de aplicaciones y software multiplataforma.

Además, somos especialistas en inteligencia artificial, ia para empresas y agentes IA, aplicando patrones de eficiencia similares a los de estos retos para entrenar, servir y monitorizar modelos a escala. Conoce cómo integramos modelos en procesos reales con nuestro servicio de inteligencia artificial.

Nuestro portfolio se completa con ciberseguridad y pentesting, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, y automatización de procesos. Combinamos diseño de algoritmos con arquitectura escalable para asegurar soluciones rápidas, seguras y mantenibles.

Si te interesa seguir este viaje de resolución sistemática de problemas en Python y C++, mantente atento a próximos días donde abordaremos estructuras enlazadas, programación dinámica y más, siempre con foco en calidad, rendimiento y buenas prácticas.

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.