ID:53.最大子数组和

78 阅读1分钟

题目

考点:动态规划、贪心、分治

题目链接

题解

使用贪心法,首先不断累加数组元素,每一次累加都要与当前最大值进行比较。当数组元素小于0的时候,意味着在遍历后面的元素时如果将之前的序列加上去,一定会拉低总和,所以就要重新计算,即累加和从0开始,又因为只需要求最大值即可,所以也不用记录下标。

var maxSubArray = function(nums) {
    let max = -100001, sum = 0;
    for(let i = 0; i < nums.length; i++) {
        sum += nums[i];
        max = Math.max(max, sum);
        if(sum < 0) sum = 0;
    }
    return max;
};