题目描述
给出非负整数数组 A ,返回两个非重叠(连续)子数组中元素的最大和,子数组的长度分别为 L 和 M。(这里需要澄清的是,长为 L 的子数组可以出现在长为 M 的子数组之前或之后。)...示例1
输入:
A = [0,6,5,2,2,5,1,9,4], L = 1, M = 2
输出:
20
解释:
子数组的一种选择中,[9] 长度为 1,[6,5] 长度为 2。...示例2
输入:
A = [3,8,1,3,2,1,8,9,0], L = 3, M = 2
输出:
29
解释:
子数组的一种选择中,[3,8,1] 长度为 3,[8,9] 长度为 2。...示例3
输入:
A = [2,1,5,6,0,9,5,0,3,8], L = 4, M = 3
输出:
31
解释:
子数组的一种选择中,[5,6,0,9] 长度为 4,[0,3,8] 长度为 3。...然后 dpm 全部处理完之后,遍历数组,假设长度为 L 的区间以 A[i] 结束,那么我们只需要在 A[0] 到 A[i-L] 中间找长度为 M 的区间最大和就行了,那答案不就是上面求好的 dpm[i-L