web-dev-qa-db-fra.com

Qu'est-ce que l'algorithme de fenêtre coulissante? Exemples?

En résolvant un problème de géométrie, je suis tombé sur une approche appelée Sliding Window Algorithm.

Je n'ai pas vraiment trouvé de matériel d'étude/de détails à ce sujet.

Quel est l'algorithme?

43
Silvester

D'une manière générale, une fenêtre coulissante est une sous-liste qui s'exécute sur une collection sous-jacente. C'est-à-dire, si vous avez un tableau comme

[a b c d e f g h]

une fenêtre coulissante de taille 3 courrait dessus comme

[a b c]
  [b c d]
    [c d e]
      [d e f]
        [e f g]
          [f g h]

Ceci est utile si, par exemple, vous souhaitez calculer une moyenne mobile, ou si vous souhaitez créer un ensemble de toutes les paires adjacentes, etc.

104
aioobe

La fenêtre coulissante est une technique de résolution de problèmes pour les problèmes impliquant des tableaux/listes. Ces problèmes sont faciles à résoudre en utilisant une approche par force brute dans O (n ^ 2) ou O (n ^ 3). En utilisant la technique de la "fenêtre coulissante", nous pouvons réduire la complexité temporelle à O (n).

Un excellent article à ce sujet est ici: https://medium.com/outco/how-to-solve-sliding-window-problems-28d67601a66

1
Mahes