【发布时间】:2019-05-19 18:58:05
【问题描述】:
有一个包含元素 {5,30,99,60,5,10} 的一维数组。 从这个数组中,1 个子序列是 5、99 和 10,它们的总和为 114。其他子序列的总和小于 114。 子序列中的两个元素不应该是连续的,即 {5, 30 和 60} 不是有效的子序列(对于这个问题)。它可以是 {5, 99, 5} 或 {30, 60, 10} 等。数组不包含负数。 什么方法是计算这个最大总和的正确方法?我正在尝试在 C 中实现它。
【问题讨论】:
-
有一个算法,但很难解释。你可以阅读它here
-
@babaliaris 看起来该算法不满足序列不能由相邻列表项组成的约束。
-
@babaliaris 用于连续元素..
-
你可以修改它来实现它们。这可能是一项艰巨的任务,但优化算法本身就很难。为了能够实现您正在尝试做的事情,您需要做很多工作。
标签: c data-structures