0
点赞
收藏
分享

微信扫一扫

计算最大子数组和 js

热爱生活的我一雷广琴 2022-02-21 阅读 40
javascript

最大和子数组问题在于找到数组或整数列表中连续子序列的最大和:

例如:

maxSequence([-2, 1, -3, 4, -1, 2, 1, -5, 4])
// should be 6: [4, -1, 2, 1]

简单的情况是列表仅由正数组成并且最大和是整个数组的总和。

如果列表仅由负数组成,则返回 0。

空列表被认为具有零最大和。请注意,空列表或数组也是有效的子列表/子数组。

 

var maxSequence = function(arr){
  var len = arr.length;
  var maxSum = [];
  if(len == 0 || Math.max.apply(null, arr) < 0){
    return 0;
  };

  for(var step = 1; step < len + 1; step+=1){
    for(var i in arr){
      if(Number(i) + step < len+1){
        maxSum.push(arr.slice(Number(i), Number(i) + step).reduce((x,y)=>x+y));
      }
    }
  };
  
  var result = Math.max.apply(null, maxSum);
  return result;

}
举报

相关推荐

0 条评论