找到具有最大和的子数组
我们需要编写一个接受数字数组的 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
广告