剣はオファー42を指します。連続するサブアレイの最大合計

剣はオファー42を指します。連続するサブアレイの最大合計

タイトル説明

ここに画像の説明を挿入

問題解決のアイデア

この質問は連続サブ配列の最大値を見つけることであり、アイデアはdpであることに注意してください。

なぜ接頭辞の合計ではないのですか?

接頭辞の合計のタイトルの説明も連続したサブ配列ですが andisK という単語が含まれいる必要があります。区別に注意してください。

class Solution {
    
    
    public int maxSubArray(int[] nums) {
    
    
        //定义:dp[i]表示以nums[i]结尾的子数组和的最大值
        int[] dp = new int[nums.length];
        //base case
        dp[0] = nums[0];
        int res = nums[0];

        for (int i = 1; i < nums.length; i++) {
    
    
            dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]);
            res = Math.max(res, dp[i]);
        }

        return res;
    }
}

おすすめ

転載: blog.csdn.net/cys975900334/article/details/115280181