[解決済み] 最大和サブアレイのブルートフォースはなぜO(n^2)なのか?
2022-02-16 18:12:40
質問
は サブアレイの最大和 は、コンピュータサイエンスで有名な問題です。
少なくとも2つの解がある。
- ブルートフォース、可能なすべての部分配列を見つけ、最大値を求める。
- のバリエーションを使用します。 Karanes アルゴリズム を使用して、配列の最初のパスを通過する間に、グローバルな最大値を計算します。
動画で見る
チュートリアル
筆者は、ブルートフォース方式は
O(n^2)
を読むことです。
別解
一人思う
O(n^2)
であり、別の人は
O(n^3)
ブルートフォースは
O(n^2)
または
O(n^3)
? さらに重要なことは、ブルートフォースメソッドに対してどのような分析を行ったか、そしてそれが
O(?)
?
解決方法は?
まあ、どの程度の強引さかにもよりますが。
をすべて生成すると
(i, j): i <= j
のペアを作り、その間の和を計算すると、それは
O(n^3)
:
....
for (int i = 0; i < n; i++)
for (int j = i; j < n; j++) {
int sum = 0;
for (int k = i; k <= j; k++)
sum += a[k];
if (sum > max)
max = sum;
}
すべての位置からスタートしてランニングサム(総和)を計算すると
O(n^2)
:
....
for(int i = 0; i < n; i++) {
int sum = 0;
for (int j = i; j < n; j++) {
sum += a[j];
if (sum > max)
max = sum;
}
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Verilogで1次元と2次元のバイト配列を宣言して使用するには?
-
[解決済み] MIPSで配列を作る(アクセスする)方法
-
[解決済み] Angular 2のTypeScriptで配列にフィルタをかけるには?
-
[解決済み] MIPSの2Dアレイ
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] MATLABで動的配列を作成する方法
-
[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
-
[解決済み] MATLABのnumel関数とlength関数の違いについて
-
[解決済み] 最大和サブアレイのブルートフォースはなぜO(n^2)なのか?
-
[解決済み] Ruby: ハッシュの配列で Enumerator を取得しようとすると nil:NilClass の未定義メソッド `[]' が発生する。