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.