53. Maximum Subarray( JavaScript

2018-11-26  本文已影响10人  f1a94e9a1ea7

给一个整数数组,找出数组连续几个数加起来最大的那个值。

Example:

解析:

数组当前项 + 后一项 如果小于 后一项,则可以舍去当前项,直接用后一项继续向后加。

参考于博客

/**
 * @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;
};
上一篇下一篇

猜你喜欢

热点阅读