考虑例如A [14,9,13,4,6,12,11,10]
。索引集{1,3,5}
或{1,4,6}
稀疏。 {1,2,5}
不稀疏,因为1,2是相邻的。
权重由所有稀疏索引的总和来完成,例如w(1,3,5) = 14 + 13 + 6 = 33
如何为每个k,0 <= k =&lt; 0&lt; = k =&lt; 0&gt;开发W(k)的递归。 n令W(k)为A的前缀A [1..k]的稀疏索引集的最大权重?
如何为动态编程编写伪代码,为所有W(k)
计算0 <= k <= n
?
谢谢大家。
答案 0 :(得分:0)
假设A的数组索引是从1开始的。 W被初始化为全零。 W的计算方法如下:
W [I] = MAX(W [I-1],W [I-2] + MAX(0,A [1]));
如果数组A中的元素总是大于零,则不需要max(0,A [i])。