题目链接

牛客网

题目描述

{6, -3, -2, 7, -15, 1, 2, 2},连续子数组的最大和为 8(从第 0 个开始,到第 3 个为止)。

解题思路

public class Solution {
   
    public int FindGreatestSumOfSubArray(int[] nums) {
   
        if (nums==null || nums.length==0) return 0;
        if (nums.length==1) return nums[0];
        int[] dp = new int[nums.length];
        int max = nums[0];
        dp[0] = nums[0];
        for (int i=1;i<nums.length;i++) {
   
            dp[i] = dp[i-1]>=0? nums[i]+dp[i-1]: nums[i];
            max = Math.max(max, dp[i]);
        }
        return max;
    }
}