查找具有最大JavaScript总和的子数组

我们需要编写一个包含数字数组的JavaScript函数。数字数组可以包含正数和负数。

我们函数的目的是从数组(任何长度)中找到子数组,子元素的总和给出最大和。然后,该函数应返回该子数组元素的总和。

例如-

如果输入数组是-

const arr = [-2,1,-3,4,-1,2,1,-5,4];

那么输出应该是-

const output = 6

因为[4,-1,2,1]的最大和为6。

示例

const arr = [-2,1,-3,4,-1,2,1,-5,4];
const maxSubArray = (arr = []) => {
   let sum = arr[0], max = arr[0];
   for (let i = 1; i < arr.length; ++i){
      sum = Math.max(sum + arr[i], arr[i]), max = Math.max(max, sum);
   };
   return max;
};
console.log(maxSubArray(arr));

输出结果

控制台中的输出将是-

6