JavaのKadaneのアルゴリズムを使用して最大サブアレイ合計を効率的に見つける方法を学びましょう。
問題ステートメント:
サイズnの配列を与えられた場合、Javaプログラムを作成して、Kadaneのアルゴリズムを使用して隣接するサブアレイの最大合計を決定します。 例:
<code>Input: n = 5 arr[] = 1, 2, 3, -2, 5 Output: Maximum Subarray sum is: 9</code>
Kadaneのアルゴリズムは、最大サブアレイ合計を見つけるための効率的なO(n)時間複雑さのソリューションを提供します。
手順:
2つの変数を初期化します:
)にcurrentSum
を0に設定します。
maxSum
currentSum
maxSum
アレイを繰り返します:各要素の場合、Integer.MIN_VALUE
。
:追加するたびに、最大arr[i]
とcurrentSum
。
reset maxSum
:maxSum
がネガティブになった場合、0にリセットします。これは、ネガティブmaxSum
が以前の要素を含めることは大きな合計に寄与しないことを示しているため重要です。現在の要素から新しいサブアレイを開始することをお勧めします。
currentSum
currentSum
currentSum
currentSum
以上がJavaの最大サブアレイ合計:Kadaneのアルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。