最大子序和

110 阅读1分钟

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

删除前面为负数的字串

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    var i = 0;
    var l = nums.length;
    var ans = -1000000;
    var sum = 0;
    if (nums.length === 1) return nums[0]
    for(i=0; i<l; i++)
    {
        sum += nums[i];
        if(sum > ans)
        {
            ans = sum;
        }
        if(sum < 0)
        {
            sum = 0;   //子串和为负数,丢掉
        }
    }
    return ans;
    
};