web-dev-qa-db-ja.com

スライディングウィンドウアルゴリズムとは例?

ジオメトリの問題を解決しているときに、スライディングウィンドウアルゴリズムと呼ばれるアプローチに出会いました。

教材や詳細が実際に見つかりませんでした。

アルゴリズムは何ですか?

43
Silvester

一般的に、スライディングウィンドウは、基礎となるコレクション上で実行されるサブリストです。つまり、次のような配列がある場合

[a b c d e f g h]

サイズ3のスライディングウィンドウが次のように表示されます

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

これは、たとえば移動平均を計算したい場合、またはすべての隣接するペアのセットなどを作成したい場合に便利です。

104
aioobe

スライディングウィンドウは、配列/リストに関連する問題の問題解決手法です。これらの問題は、O(n ^ 2)またはO(n ^ 3)のブルートフォースアプローチを使用して簡単に解決できます。 「スライディングウィンドウ」技術を使用すると、時間の複雑さをO(n)に減らすことができます。

これに関する素晴らしい記事はこちらです: https://medium.com/outco/how-to-solve-sliding-window-problems-28d67601a66

1
Mahes