JavaScript中子数组的最大连续和
我们需要编写一个JavaScript函数,该函数接受一个由正整数和负整数组成的数组。由于数组还包含负元素,因此连续元素的总和可能为负也可以为正。
我们的函数应该从总和最大的数组中选择一个连续的元素数组。最后,该函数应返回该数组。
例如-
如果输入数组是-
const arr = [-2, -3, 4, -1, -2, 1, 5, -3];
那么最大可能的和是7并且输出子数组应该是-
const output = [4, -1, -2, 1, 5];
示例
以下是代码-
const arr = [-2, -3, 4, -1, -2, 1, 5, -3];
const maximumSubarray = (arr = []) => {
let max = -Infinity;
let currentSum = 0;
let maxStartIndex = 0;
let maxEndIndex = arr.length - 1;
let currentStartIndex = 0;
arr.forEach((currentNumber, currentIndex) => {
currentSum += currentNumber;
if (max < currentSum) {
max = currentSum;
maxStartIndex = currentStartIndex;
maxEndIndex = currentIndex;
}
if (currentSum < 0) {
currentSum = 0;
currentStartIndex = currentIndex + 1;
}
});
return arr.slice(maxStartIndex, maxEndIndex + 1);
};
console.log(maximumSubarray(arr));输出结果以下是控制台上的输出-
[ 4, -1, -2, 1, 5 ]
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短