Introducción

1

Arrays y Strings para resolver algoritmos avanzados

2

Arrays y Strings en detalle

Dos Apuntadores

3

Patrón de Dos Apuntadores

4

Verifying Alien Dictionary: análisis del problema

5

Solución de Verifying Alien Dictionary

6

Playground: Verifying Alien Dictionary

7

Programando Verifying Alien Dictionary con JavaScript

8

Merge Two Sorted Lists: análisis del problema

9

Solución de Merge Two Sorted Lists

10

Playground: Merge Two Sorted Lists

11

Programando Merge Two Sorted Lists con Python

12

Container With Most Water: análisis del problema

13

Solución de Container With Most Water

14

Playground: Container with Most Water

15

Programando Container With Most Water con Java

16

Reto: Trapping Rain Water

17

Ejercicios recomendados de Dos Apuntadores

18

Ejercicios resueltos de Dos Apuntadores

Ventana Deslizante

19

Patrón de Ventana Deslizante

20

Longest Substring Without Repeating Characters: análisis del problema

21

Solución de Longest Substring Without Repeating Characters

22

Playground: Longest Substring Without Repeating Characters

23

Programando Longest Substring Without Repeating Characters con Python

24

Ejercicios recomendados de Ventana Deslizante

25

Ejercicios resueltos de Ventana Deslizante

Búsqueda Binaria

26

Algoritmo de Búsqueda Binaria

27

Search in Rotated Arrays: análisis del problema

28

Solución de Search in Rotated Arrays

29

Playground: Search in Rotated Arrays

30

Programando Search in Rotated Arrays

31

Search 2D Array Matrix: análisis del problema

32

Solución de Search 2D Array Matrix

33

Playground: Search 2D Array Matrix

34

Programando Search 2D Array Matrix

Próximos pasos

35

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

Patrón de Ventana Deslizante

19/35
Recursos

¿Qué es el patrón ventana deslizante?

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.

¿Cuándo utilizar el patrón ventana deslizante?

Este patrón se aplica cuando es necesario:

  • Analizar una ventana de datos que se suceden uno tras otro.
  • Calcular un valor para un grupo de datos mientras estos cumplan con una condición específica, como ciertos criterios numéricos o de texto.

Por ejemplo, se podría aplicar para:

  • Contar cuántos nombres de personas en una lista cumplen con un criterio específico.
  • Verificar sucesiones numéricas dentro de datos financieros.

¿Cómo funciona el patrón ventana deslizante?

Para implementar este patrón, es necesario seguir los siguientes pasos:

  1. Inicialización de apuntadores: Se comienza con dos apuntadores, P1 y P2, ambos situados al comienzo de la lista de datos.

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

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

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

Ejemplo práctico del uso del patrón

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

  1. P1 inicia en 3, P2 también en 3.
  2. P2 avanza a 5, se calcula la suma (3+5=8).
  3. P2 avanza a 7, suma (3+5+7=15), condición satisfecha.
  4. P2 vuelve a avanzar, suma (3+5+7+8=23), condición no satisfecha, por lo que P1 avanza al siguiente punto beneficioso, y empieza un nuevo análisis.

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

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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.