算法
Maximum Sum in Contiguous Array
寻找连续子数组的最大和
给定一个数组 numbers,找出其中和最大的连续子数组,返回该子数组的和。
思路
和连续子数组中最大乘积类似。
使用动态规划,遍历数组时,维护:
current:当前最大子数组和
状态转移方程:
current = max(num, current + num)
代码
function maxSubarraySum(numbers: number[]): number {
if (numbers.length === 0) return 0;
let current = numbers[0];
let result = numbers[0];
for (let i = 1; i < numbers.length; i++) {
const num = numbers[i];
current = Math.max(num, current + num);
result = Math.max(result, current);
}
return result;
}在 GitHub 上编辑
上次更新于