Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.
从数组中找到连续几个,看和的最大值是多少?
public int maxSubArray(int[] nums) {
// 用sum存储到第i位前可能出现的最大值,如果第i位前面的可能出现的最大值是负数,就丢弃前面的累赘。
int sum=nums[0];
int max=nums[0];
for(int i=1;i<nums.length;i++){
sum = sum>0?(sum+nums[i]):nums[i];
max =sum>max?sum:max;
}
return max;
}