【发布时间】:2012-04-21 16:48:31
【问题描述】:
问题是:
在正整数数组中找出可能的最大总和,方法是选择元素,确保没有两个元素彼此相邻。
有这样的答案: 但是这个问题的最佳答案是什么
让我们用“t”表示数组,并从 0 开始索引它。设 f 为 函数使得 f(k)=[0..k] 子数组中具有问题条件的最大和。 现在使用动态规划:
f(0) = t[0]
f(1) = max{ t[0], t[1] }
f(k) = max{ f(k-2) + t[k], f(k-1) } if k >= 2
If the array has n elements we need f(n-1).
提前致谢。
【问题讨论】: