Estructuras de datos (1): Encontrar el máximo de una ventana deslizante

La ventana deslizante es una técnica utilizada para simplificar problemas complejos de datos. Una ventana que se desliza por los datos para examinar distintas secciones de estos.

Tu desafío es crear una ventana deslizante que recorra el array y devuelva el valor máximo en cada ventana.

Argumentos

  • Array: El array que estás recorriendo.
  • windowLength: La longitud de la ventana que usarás para realizar la búsqueda.
  • Devuelve Array: Un nuevo array que contiene los valores máximos de cada ventana.
  • Se te proporciona este array y una longitud de ventana de 2.
[4, 5, 6, 7, 8, 9]

Nuestra función comenzaría examinando los dos primeros elementos del array y agregaría el valor máximo a un nuevo array.

[**4, 5,** 6, 7, 8, 9]

... luego la ventana se desliza para examinar los dos siguientes, en este caso 5 y 6, y agrega el valor máximo al array.

[4, **5, 6**, 7, 8, 9]

La ventana examinará toda la longitud del array hasta que los valores máximos de cada ventana se hayan agregado al nuevo array.

Ejemplos

windowMaxes([1, 2, 3, 4, 3, 2, 1, 2, 5], 3) ➞ [3, 4, 4, 4, 3, 2, 5]

Notas

  • Este desafío forma parte de mi serie de Estructuras de datos. Es una colección de desafíos comunes de entrevistas de programación que se utilizan para comprobar la comprensión de las estructuras de datos.
  • Puedes encontrar la serie completa de desafíos aquí.