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í .

Progreso diario de LeetCode – Día 19

Día 19: Ventana deslizante para maximizar unos con hasta k cambios y hallar todos los índices de anagramas

Publicado el 08/09/2025

Problemas resueltos: #1004 Max Consecutive Ones III y #438 Find All Anagrams in a String. Día 19 de mi serie diaria sobre ventana deslizante centrada en maximizar unos con hasta k cambios y en hallar todos los índices donde aparecen anagramas.

Qué aprendí

- En Max Consecutive Ones III, la ventana crece con el puntero derecho y se contrae con el izquierdo cuando la ventana supera k ceros. Así mantenemos siempre la ventana válida más larga.

- En Find All Anagrams in a String, comparar las frecuencias del patrón p y de la ventana actual de s permite detectar anagramas en tiempo lineal.

- Patrón esencial de ventana deslizante: expandir, comprobar validez, contraer cuando deja de ser válida y actualizar el resultado.

#1004 Max Consecutive Ones III

Idea: dos punteros y conteo de ceros. Al mover right, si entra un 0, reducimos el presupuesto de cambios k. Si k cae por debajo de 0, movemos left hasta expulsar un 0 para recuperar validez. En cada paso, actualizamos la longitud máxima right - left + 1.

Complejidad: O(n) tiempo y O(1) espacio.

#438 Find All Anagrams in a String

Idea: usar un contador de frecuencias del patrón p y mantener otro de la ventana deslizante de tamaño len(p) sobre s. Al avanzar la ventana, añadimos el nuevo carácter por la derecha y retiramos el que sale por la izquierda. Cuando ambos contadores coinciden, el índice de inicio es un anagrama válido.

Notas de implementación: en Python es natural con Counter, y en C++ se puede usar un vector de 26 enteros para letras minúsculas. La comparación de vectores es O(26), constante.

Complejidad: O(n) tiempo y O(1) espacio.

Logros del día: perfeccioné la técnica de expansión y contracción de la ventana para maximizar la racha de unos con flips y localicé todos los índices de anagramas con emparejamiento de frecuencias en Python y C++.

Recap de complejidad: Max Consecutive Ones III O(n) tiempo y O(1) espacio. Find All Anagrams in a String O(n) tiempo y O(1) espacio.

Progreso diario de LeetCode – Día 19: sigo documentando soluciones en Python y C++ sobre arrays, ventana deslizante, listas enlazadas y árboles. Si te interesan la resolución sistemática de problemas y las buenas prácticas, te invito a seguir esta serie.

Sobre Q2BSTUDIO: somos una empresa de desarrollo de software con foco en aplicaciones a medida y software a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si tu organización quiere convertir algoritmos como la ventana deslizante en productos reales y escalables, podemos ayudarte desde la idea hasta la puesta en producción.

Descubre cómo transformamos requisitos complejos en soluciones robustas con nuestra experiencia en aplicaciones a medida y potencia tus casos de uso con nuestras capacidades de inteligencia artificial para empresas. También impulsamos tu analítica con power bi y optimizamos tu infraestructura con servicios cloud aws y azure, todo bajo un marco de ciberseguridad y pentesting de alto nivel.

Si buscas acelerar tu roadmap tecnológico o automatizar procesos con IA y agentes IA, hablemos. En Q2BSTUDIO unimos ingeniería, datos y producto para crear ventajas competitivas medibles.

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