2016-08-13 1 views
0

3つ以上のサブアレイが存在する場合は、より短いサブアレイを返す必要があります。サブアレイの長さがkに等しくないように、最大​​合計隣接サブアレイを見つけますか?

私たちは、サブアレイとその合計の長さにのみ関係しています。

これはO(n^2)でブルートフォースで解くことができますが、これを行う効率的な方法を探しています。 私はまた、スライディングウィンドウの概念を使ってO(n)でこれを解決しようとしましたが、後でそれがいくつかのケースで失敗することを認識しました。

これはどのように効率的に行うことができますか?

+0

私はこのヘルプが必要な唯一の読者であるかもしれません(または、回答が必要であることを不適格にする必要がある)かもしれませんが、入力データ構造は何ですか?数字の配列ですか?連続したサブアレイとは何ですか? – danh

+0

@danh「隣接している」という単語は、隣接しているか隣接していることを意味します。連続した部分配列は、すべての要素が互いに隣接しています。同様に、a [0]、a [1]、a [2]は連続したサブ配列a [0]、a [2]、a [4]を作成しません –

答えて

1

私はあなたにKadaneのアルゴリズムを見てみることをお勧めします。与えられた配列から最大の総和を持つ連続した部分配列を探します。それはO(n)でそうする。あなたの問題は長さを「k」に制限します。したがって、長さ< = kの小切手をKadane'sに入れればいいだけです。

関連する問題