找到具有最大和的子数组
我们需要编写一个接受数字数组的 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP