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

javascriptweb developmentfront end technologyobject oriented programming

我们需要编写一个 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

相关文章