Estruturas de Dados (1): Encontrar o Máximo de uma Janela Deslizante

A janela deslizante é uma técnica usada para simplificar problemas complexos envolvendo dados. Uma janela que desliza pelos dados para examinar diferentes seções deles.

Seu desafio é criar uma janela deslizante que percorra o array e retorne o valor máximo em cada janela.

Argumentos

  • Array: O array que você está percorrendo.
  • windowLength: O comprimento da janela que você usará para fazer a busca.
  • Retorna Array: Um novo array contendo os valores máximos de cada janela.
  • Você recebe este array e um comprimento de janela igual a 2.
[4, 5, 6, 7, 8, 9]

Nossa função começaria examinando os dois primeiros elementos do array e adicionaria o valor máximo a um novo array.

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

... então a janela desliza para examinar os próximos dois, neste caso 5 e 6, e adiciona o valor máximo ao array.

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

A janela examinará todo o comprimento do array até que os valores máximos de cada janela tenham sido adicionados ao novo array.

Exemplos

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

Observações

  • Este desafio faz parte da minha série de Estruturas de Dados. Ela é uma coleção de desafios comuns de entrevistas de programação usados para testar a compreensão sobre estruturas de dados.
  • A série completa de desafios pode ser encontrada aqui.