查找具有最大和的子数组 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