ホームページ > Java > &#&チュートリアル > Kadane&#s アルゴリズム: Leetcode 最大部分配列

Kadane&#s アルゴリズム: Leetcode 最大部分配列

DDD
リリース: 2025-01-11 08:12:42
オリジナル
768 人が閲覧しました

Kadane

直感

2 点アプローチに基づいて直感を構築できます。

アプローチ

2 つの変数 maxSum と maxTillNow から始めます。

  • 最初の変数には、配列全体で得られた最大合計が格納されます。

  • 2 番目の変数には、現在のインデックスまでに達成された最大合計の値が格納されます。配列には負の値があるため、この値は変動しますが、maxSum

  • 処理しなければならない最後のケースは、いずれかのインデックスがゼロに達するまでの最大合計が、つまり maxTillNow < になる場合です。 0、ループの最後で maxTillNow = 0 をリセットします。

複雑

  • 時間計算量: O(N)

  • 空間複雑さ: O(1)

コード

class Solution {
    public int maxSubArray(int[] nums) {
        int maxSum = Integer.MIN_VALUE;
        int maxTillNow = 0;
        for(int i =0;i<nums.length;i++){
            maxTillNow+=nums[i];
            maxSum = Math.max(maxTillNow,maxSum);
            if(maxTillNow<0) maxTillNow = 0;
        }
        return maxSum;
    }
}
ログイン後にコピー

その他のソリューションの GitHub リポジトリ: Git
リートコード プロフィール: リートコード: devn007

以上がKadane&#s アルゴリズム: Leetcode 最大部分配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート