问题是:
通过选择元素的方式,在正整数数组中找到可能的最大总和,使得没有两个元素相邻。
有一个答案如下: 但对于这个问题,什么是最好的答案呢?
让我们用“t”表示数组并从0开始索引。设f是一个函数,使得 f(k)=在满足问题条件的[0..k]子数组中的最大和。 现在使用动态规划:
通过选择元素的方式,在正整数数组中找到可能的最大总和,使得没有两个元素相邻。
有一个答案如下: 但对于这个问题,什么是最好的答案呢?
让我们用“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).
Thanks in advance.