给一个整数数组,找出数组连续几个数加起来最大的那个值。
Example:
- Input: [-2,1,-3,4,-1,2,1,-5,4],
- Output: 6
- Explanation: [4,-1,2,1] has the largest sum = 6.
解析:
数组当前项 + 后一项 如果小于 后一项,则可以舍去当前项,直接用后一项继续向后加。
参考于博客
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function(nums) {
if(nums.length==0) return 0;
var maxSum = nums[0],curSum = nums[0];
for(var i=1;i<nums.length;i++){
if(nums[i]>curSum+nums[i]){
curSum = nums[i];
}else{
curSum += nums[i];
}
if(curSum>maxSum){
maxSum = curSum;
}
}
return maxSum;
};