链接:https://leetcode-cn.com/problems/maximum-subarray/
这道题应该是《算法导论》上出现过的一道题,遍历数组,记录以数组中每个元素为结尾能够得到的最大子序和,下一个元素为结尾的最大子序和为它自身或者它加上上一个元素为结尾的最大子序和,取决于上一个值是正是负。
class Solution {
public int maxSubArray(int[] nums) {
int [] temp = new int [nums.length];//保存以每个元素为结尾的最大子序和
int max = nums[0];
for(int i = 0;i<nums.length;i++)
{
if(i==0||temp[i-1]<0)
temp[i] = nums[i];
else
temp[i] = nums[i]+temp[i-1];
if(temp[i]>max)
max = temp[i];
}
return max;
}
}