LintCode 41.最大のサブ配列JavaScriptアルゴリズム

解説

整数配列を指定して、合計が最大のサブ配列を見つけ、その最大の合計を返します。

説明

サブ配列には少なくとも1つの数値が含まれています

サンプル

- 样例1:

输入:[2,2,3,4,1,2,1,5,3]
输出:6
解释:符合要求的子数组为[4,1,2,1],其最大和为 6- 样例2:

输入:[1,2,3,4]
输出:10
解释:符合要求的子数组为[1,2,3,4],其最大和为 10

チャレンジ

必要な時間の複雑さはO(n)です

解析中

const maxSubArray = function (nums) {
    
    
    if (nums === null || nums.length === 0) {
    
    
        return 0;
    }
    var maxSum = nums[0], minSum = 0, sum = 0;
    var i;
    for (i = 0; i < nums.length; i++) {
    
    
        sum += nums[i];
        if (sum - minSum > maxSum) {
    
    
            maxSum = sum - minSum;
        }
        if (sum < minSum) {
    
    
            minSum = sum;
        }
    }
    return maxSum;
}

演算結果

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/SmallTeddy/article/details/108724397