找到两个固定大小 (K,L) 的子列表以最大化正序列中的总和
Finding two sublists of fixed sizes (K,L) to maximize total sum among positive sequence
给定一个正整数列表,以及两个整数 K 和 L,我需要 select 两个非重叠长度为 K 和 L 的连续子列表,以最大化两个子列表的组合总和。
例如,如果列表是 [6,1,4,6,3,2,7,4],K = 3,并且 L = 2,那么我想要子列表 [4,6,3] 和 [7,4],其总和为 24 是可实现的最大值。
列表至少有K + L个元素,最多600个元素;元素是 [1, 500].
范围内的整数
不知从何说起。我在考虑动态编程解决方案,但我对它不是很熟悉,所以我不确定这是否可行。
从左到右扫描数组,计算从每个索引开始的长度为 K 和长度为 L 的连续子数组的部分和。它可能在 O(n) 中执行。
在每个索引之前将最大和写入辅助数组LeftK, LeftL
将每个索引后的最大和写入辅助数组RightK, RightL
现在对每个索引 i
求 LeftK[i]+RightL[i]
和 LeftL[i]+RightK[i]
的总和,并在所有条目中选择最佳总和。
给定一个正整数列表,以及两个整数 K 和 L,我需要 select 两个非重叠长度为 K 和 L 的连续子列表,以最大化两个子列表的组合总和。
例如,如果列表是 [6,1,4,6,3,2,7,4],K = 3,并且 L = 2,那么我想要子列表 [4,6,3] 和 [7,4],其总和为 24 是可实现的最大值。
列表至少有K + L个元素,最多600个元素;元素是 [1, 500].
范围内的整数不知从何说起。我在考虑动态编程解决方案,但我对它不是很熟悉,所以我不确定这是否可行。
从左到右扫描数组,计算从每个索引开始的长度为 K 和长度为 L 的连续子数组的部分和。它可能在 O(n) 中执行。
在每个索引之前将最大和写入辅助数组LeftK, LeftL
将每个索引后的最大和写入辅助数组RightK, RightL
现在对每个索引 i
求 LeftK[i]+RightL[i]
和 LeftL[i]+RightK[i]
的总和,并在所有条目中选择最佳总和。