【刷演算法】LeetCode.53-最大子序和

亞古發表於2019-02-16

給定一個整數陣列 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) {
    if(nums.length === 0)
        return null;
    if(nums.length === 1)
        return nums[0];
    
    let cur = 0, max = -Infinity;
    for(let i = 0;i < nums.length;i++) {
        cur += nums[i];
        if(cur > max)
            max = cur;
        if(cur < 0) {
            cur = 0;
        }
    }
    
    return max;
};

相關文章