ホームページ >Java >&#&チュートリアル >Javaの最大サブアレイ合計:Kadaneのアルゴリズム

Javaの最大サブアレイ合計:Kadaneのアルゴリズム

Barbara Streisand
Barbara Streisandオリジナル
2025-02-07 11:54:19756ブラウズ

JavaのKadaneのアルゴリズムを使用して最大サブアレイ合計を効率的に見つける方法を学びましょう。

問題ステートメント:

サイズnの配列を与えられた場合、Javaプログラムを作成して、Kadaneのアルゴリズムを使用して隣接するサブアレイの最大合計を決定します。

例:

<code>Input:
n = 5
arr[] = 1, 2, 3, -2, 5

Output:
Maximum Subarray sum is: 9</code>
Kadaneのアルゴリズムを理解する:

Kadaneのアルゴリズムは、最大サブアレイ合計を見つけるための効率的なO(n)時間複雑さのソリューションを提供します。

手順:

2つの変数を初期化します:
    (現在のサブアレイの合計を追跡するため)と
  1. (これまでに遭遇した最大合計を保存する)。 可能な限り最小の整数値(例えば、

    )にcurrentSumを0に設定します。 maxSum currentSum maxSumアレイを繰り返します:各要素の場合、Integer.MIN_VALUE

  2. update

    :追加するたびに、最大arr[i]currentSum

  3. reset maxSummaxSumがネガティブになった場合、0にリセットします。これは、ネガティブmaxSumが以前の要素を含めることは大きな合計に寄与しないことを示しているため重要です。現在の要素から新しいサブアレイを開始することをお勧めします。 currentSum

  4. javaコード:

    currentSum currentSum currentSum

    output(例):

以上がJavaの最大サブアレイ合計:Kadaneのアルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。