LeetCodeトップ-100 T53-最大サブシーケンスと

件名の説明:

その最大戻るを有する(サブアレイが最小要素を含む)NUMSに整数の配列を与えられ、そして連続するサブ配列の最大値を見つけます。

例:

入力:[-2,1、-3,4、-1,2,1、-5,4]、
出力:6
説明:連続サブアレイ[4、-1,2,1]であり、最大値は6でした。

問題解決のアイデア:

動的再発は:徐々に解決使用できる溶液<0は前のステップが破棄される場合、溶液の各ステップの終了位置の連続的な配列で、合計は、実際、この段階で比較すると、先のステップの溶液に記録されています。最後のステップは、このソリューションを取得するには、ステップ・ソリューションを比較する前に、最大値tmpが、現在の最適解を保存します。

コード:

class Solution {
    public int maxSubArray(int[] nums) {
        int tmp = nums[0];
        int sum = 0;
        for (int num : nums) {
            sum = sum > 0 ? sum + num : num;
            if (tmp <= sum) {
                tmp = sum;
            }
        }
        return tmp;
    }
}

 

おすすめ

転載: blog.csdn.net/qq_41544550/article/details/91903959