题目:
吐槽:从任何一个位置开始,只要相加的和<0就把前面的数全都舍弃,拿当前的数和最大值进行比较,留下最大的数。和小于0的结果对后面数相加增大没有任何的帮助。
代码:
public int maxSubArray(int[] nums) {
//返回的结果,求和的最大值
int result = nums[0];
//求的的连续子数组的和
int sum = 0;
for(int i = 0;i<nums.length;i++){
if(sum>0){
sum = sum+nums[i];
}else{
sum = nums[i];
}
//保留最大值。
result = Math.max(sum,result);
}
return result;
}