Algoritmos para Desafio Internacional [1]: Sliding Window Approach
Publicado em: Dezembro 21, 2023 (Deevi)
Publicado em: Dezembro 21, 2023 (Deevi)
Você pretende trabalhar para empresas internacionais? Você sabia que muitas empresas prezam mais por estrutura de dados à frameworks?
Sabendo disso, conhecer estratégias para aumentar a performance do seu código é indispensável. Aqui começamos uma saga em busca de algoritmos que podem ser úteis na realização de testes!
O Window Sliding Technique é uma técnica computacional que podemos utilizar para redução de nested loops, fazendo com que tenhamos apenas um único loop, reduzindo assim, a complexidade algorítmica.
https://dev.to/mwong068/sliding-window-technique-in-ruby-3og4
O algoritmo é bem simples e pode ser utilizado em cenários específicos e comumente cobrados em entrevistas internacionais:
Exercício: Digamos que foi solicitado que você desenvolver uma função para calcular o maior valor da soma de uma janela específica. Por exemplo:
Janela=3
Lista=[1,3,4,5,7]
Maior Janela=16 que é a soma de: [4,5,7]
Exemplo sem:
Resolvemos o problema, mas observe que esse algoritmo tem complexidade:
Complexidade aproximada: O(n * janela)
Resultado aproximado: 4.12464141845s
Exemplo com:
Complexidade aproximada: O(n)
Resultado aproximado: 1.168251037s
Exemplos de testes (Uso)
Lembre-se, basta aprender o conceito, saber como funciona para quando solicitado um cenário em que o Sliding Window Approach seja aplicável, saber implementar.
Referências