【发布时间】:2021-04-09 23:34:59
【问题描述】:
问题来源于这个leetcode问题:https://leetcode.com/problems/maximum-subarray/
但不是返回最大的和,而是返回具有最大和的子数组。例如[-2,1,-3,4,-1,2,1,-5,4],最大和为6,如[4,-1,2,1]。这里我想返回[4,-1,2,1]而不是6这个号码。
这是我的尝试:
var maxSubArray = function(nums) {
let max = -Infinity
let sum = 0
const results = []
for(const num of nums) {
results.push(num)
sum += num
max = Math.max(sum, max)
if(sum < 0) {
sum = 0
results.length = 0
}
}
return results
};
maxSubArray([-2,1,-3,4,-1,2,1,-5,4])
但是它返回一个不正确的答案 - [ 4, -1, 2, 1, -5, 4 ]。我发现很难实现这一点,因为很难确定我们是否应该继续在 results 数组中添加后续项。
想知道是否有人愿意尝试一下。
【问题讨论】:
标签: javascript algorithm