Para profundizar un poco mas 😉
https://medium.com/gdg-ipn/patr%C3%B3n-1-la-ventana-deslizante-triunfando-en-la-entrevista-de-c%C3%B3digo-b3d3738218ce
Introducción
Arrays y Strings para resolver algoritmos avanzados
Arrays y Strings en detalle
Dos Apuntadores
Patrón de Dos Apuntadores
Verifying Alien Dictionary: análisis del problema
Solución de Verifying Alien Dictionary
Playground: Verifying Alien Dictionary
Programando Verifying Alien Dictionary con JavaScript
Merge Two Sorted Lists: análisis del problema
Solución de Merge Two Sorted Lists
Playground: Merge Two Sorted Lists
Programando Merge Two Sorted Lists con Python
Container With Most Water: análisis del problema
Solución de Container With Most Water
Playground: Container with Most Water
Programando Container With Most Water con Java
Reto: Trapping Rain Water
Ejercicios recomendados de Dos Apuntadores
Ejercicios resueltos de Dos Apuntadores
Ventana Deslizante
Patrón de Ventana Deslizante
Longest Substring Without Repeating Characters: análisis del problema
Solución de Longest Substring Without Repeating Characters
Playground: Longest Substring Without Repeating Characters
Programando Longest Substring Without Repeating Characters con Python
Ejercicios recomendados de Ventana Deslizante
Ejercicios resueltos de Ventana Deslizante
Búsqueda Binaria
Algoritmo de Búsqueda Binaria
Search in Rotated Arrays: análisis del problema
Solución de Search in Rotated Arrays
Playground: Search in Rotated Arrays
Programando Search in Rotated Arrays
Search 2D Array Matrix: análisis del problema
Solución de Search 2D Array Matrix
Playground: Search 2D Array Matrix
Programando Search 2D Array Matrix
Próximos pasos
Toma el Curso Avanzado de Algoritmos: Estructuras de Datos Lineales
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
El patrón ventana deslizante es una técnica eficaz que utiliza dos apuntadores para analizar y evaluar un subconjunto de datos dentro de una lista. Este patrón es especialmente útil cuando se trabaja con datos que no pueden ser desordenados, movidos o cambiados, y donde se necesita evaluar una serie de datos consecutivos para verificar si cumplen con ciertas condiciones.
Este patrón se aplica cuando es necesario:
Por ejemplo, se podría aplicar para:
Para implementar este patrón, es necesario seguir los siguientes pasos:
Inicialización de apuntadores: Se comienza con dos apuntadores, P1 y P2, ambos situados al comienzo de la lista de datos.
Desplazamiento del segundo apuntador: El apuntador P2 se mueve hacia adelante mientras se cumple una condición particular para la serie de datos analizada. Cada vez que P2 avanza, se puede realizar un cálculo o revisión.
Evaluación de criterios: Al llegar a un dato que no cumple con la condición establecida, se determina hasta dónde se cumple y se decide si se descartan ciertos valores o se comienzan nuevos análisis.
Reinicio del proceso: Dependiendo del análisis, puede ser necesario descartar los datos anteriores y reiniciar el proceso a partir de un nuevo punto dentro de la lista.
Imagina que tienes una lista de números [3, 5, 7, 8, 2, 9, 4]. Si deseas encontrar el grupo consecutivo de números cuya suma no exceda 15, el patrón funcionaría así:
Este patrón es una herramienta poderosa que permite el procesamiento eficiente de grandes volúmenes de datos, manteniendo un tiempo de ejecución optimizado y simplificando el código lógico del análisis. Al dominar este patrón, mejorarás significativamente tus habilidades en programación y manipulación de datos. ¡Sigue motivado y no dejes de explorar nuevas maneras de aplicar este método en tus proyectos!
Aportes 3
Preguntas 0
Para profundizar un poco mas 😉
https://medium.com/gdg-ipn/patr%C3%B3n-1-la-ventana-deslizante-triunfando-en-la-entrevista-de-c%C3%B3digo-b3d3738218ce
Aprender estos patrones para lograr optimizar los códigos me parece muy valioso.
El patrón de ventana deslizante toma dos contadores y empieza a verificar que cada elemento de la lista cumpla la condición inicial.
Cuando en una de las iteraciones esta no se cumpla el segundo contador para este elemento, el patrón dependiendo su aplicación tiene la posibilidad de comenzar a contar otra vez desde el elemento siguiente en que la condición no se cumplió hasta que termine y se vuelva a contradecir la condición y en base a los índices en los que esta condición si se cumple se retorna otra lista de datos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?