找到具有固定圈数和初始位置的数组中的最大总和

时间:2015-12-09 18:06:47

标签: algorithm recursion dynamic-programming

这是我在测试中遇到的一个问题,我不知道如何回答它,所以我将此转发给你们:

求多项式时间算法这个问题:
你得到一个N正整数(具有固定范围),一个起始位置(0到N-1之间的数字)和一个固定圈数的数组。 在每个回合中,人们可以决定是否采用数组[他现在站在哪里]并将其添加到一个总和(然后你需要记住这个单元格是空的),或者跳过,然后向左或向右。

您需要找到我们可以获得的最大金额。 例如:

array = {70,3,100}  
STARTING_POSITION = 2  
TURNS = 4

输出:170

转1 - 取100,转2 - 向左移动,转3 - 向左移动,转4 - 取70.

我考虑过动态编程,但我不知道如何处理我已经采用过的细胞 - 这种方法对整个表的影响。

0 个答案:

没有答案