【解题思路】
dp[i+1] = max{dp[i] + nums[i],nums[i]};最大是子数组和是前一个最大子数组和与当前数字中较大的值。
class Solution {
public int maxSubArray(int[] nums) {
int len = nums.length;
int[] dp = new int[len+1];
int max = -99999;
for(int i = 0; i < len; i++)
{
if(nums[i] > dp[i] && dp[i] < 0)
{
dp[i+1] = nums[i];
}
else
{
dp[i+1] = dp[i] + nums[i];
}
}
for(int i = 0; i < len; i++)
{
if(dp[i+1] > max)
{
max = dp[i+1];
}
}
return max;
}
}