2017-09-24 5 views
1

サブアレイの問題:整数配列A(正の数のみ)を指定すると、長さSの合計が連続していますか?これにスライディングウィンドウの解はO(N)です。多くのサブアレイ集計クエリ

静的配列にこのようなクエリSがたくさんある場合、前処理を行うことができます。 O(N^2)のすべての部分配列和を計算し、それらをハッシュテーブルに格納することができます。これはまた、O(N^2)空間を占有する。次に、ハッシュテーブルからSを検索するだけで、O(1)のクエリを処理できます。

私の質問はO(N log N)前処理ですか?たとえそれがO(log N)にクエリを落としたとしても。

+0

「これに対するスライディングウィンドウの解決策はO(N)」アプローチですか?問題を完全に指定しましたか? – MBo

+0

よく知られている基本的なサブアレイサム問題を完全に理解していますか? –

+0

サブアレイを選択するのはちょっと難しいようですが、O(N ** 2)に相当する2つのインデックスを選択する必要があります。 –

答えて

0

いくつかのO(N log N)前処理がありますか?

なし

N あなたはO(N 2 )時間未満でサイズN の出力を生成することができない大きさNのアレイにおける2個の可能サブアレイがあります。

+0

N log N前処理を使ってN^2ハッシュテーブルを生成する必要はありません。目標は、*いくつかの*前処理が行われた後、最悪のO(log N)時間でクエリすることが可能になることです –