🌕 剑指 Offer 42. 连续子数组的最大和

吞佛童子2022年10月10日
  • algorithm
  • dp
小于 1 分钟

🌕 剑指 Offer 42. 连续子数组的最大和

难度: 🌕

问题描述

img_63.png


解法

class Solution {
    public int maxSubArray(int[] nums) {
        // 思路:
        // dp[i] = max(dp[i - 1] + [i], 0)
        int len = nums.length;
        if(len == 1) {
            return nums[0];
        }
        int[] dp = new int[len];
        dp[0] = Math.max(nums[0], 0);
        int res = nums[0];

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

输出

img_62.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou